rackerlabs / cdeploy Goto Github PK
View Code? Open in Web Editor NEWThis project forked from dmchoull/cdeploy
Simple Python program for managing Cassandra schema migrations
License: Apache License 2.0
This project forked from dmchoull/cdeploy
Simple Python program for managing Cassandra schema migrations
License: Apache License 2.0
While trying to debug a scenario that turned out to be a case of #25 I found that the logging did not help anything since cdeploy was not reporting what file name it was trying to operate on. Some better logging would have (a) saved time and (b) made #25 obvious.
While I think #25 should certainly be resolved, better logging should also be added.
I was writing a new migration in vim, and then ran the migrations, and it broke because of the swapfile.
We have a get_session method which takes config and creates a cluster and hence return session out of it. Ideally in any DB connection we should close the connection. Here in this case cassandra cluster has method "shutdown()" which should be called after we are done with the migrations. Since its not called there is no guarantee that the command will exit in a definite time. It will keep waiting for the sessions to die.
It would be ideal to have a dry run capability that would allow you to see what versions are deployed, and what can be deployed without actually making any changes.
cdeploy --dry-run
Current version is 2
Target version is 4
http://docs.travis-ci.com/user/database-setup/#Cassandra
This would enable us to run the integration tests in Travis CI.
After performing a migration step, verify all peers agree on the schema before moving on and updating the schema_migrations
table.
While the Java driver has a nice method to check this for you, looks like we'll need to manually query the system.peers
table.
Make the following Cassandra driver options configurable:
The cassandra port is not configurable. It should be added as an optional parameter to the cluster configuration.
Incrementing integers as version numbers can be slightly problematic when many develops are working on a project at the same time. I've always though the Ruby on Rails timestamp-based versions are great, because they dramatically reduce the chance of versioning collisions. Would you be open to this style of versioning?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.