Skip to content

percolate/ddldump

Repository files navigation

ddldump

CircleCI

Dump and version the DDLs of your tables, while cleaning the dumps of all the varying stuff, like MySQL's AUTOINCs, that would make it hard to version and check for differences during continuous integration.

Usage

ddldump <dsn> [table] > table.sql

Example

Dump all the table DDLs of the MySQL database cooldb:

ddldump mysql://localhost/cooldb > cooldb.sql

Dump the specific DDL of the awesome PostgreSQL table. (requires postgresql-client, matching the server version, to be installed):

ddldump postgresql://localhost/mydb awesome > awesome.sql

Compare your dump with what's actually in your database:

$ ddldump --diff=cooldb.sql mysql://localhost/cooldb
--- mysql

+++ cooldb.sql

@@ -14,7 +14,7 @@


 -- Create syntax for TABLE 'user'
 CREATE TABLE `user` (
-  `id` bigint(20) unsigned COMMENT 'The user ID',
+  `id` bigint(20) unsigned NOT NULL COMMENT 'The user ID',
   `name` varchar(64) NOT NULL COMMENT 'The user name',
   PRIMARY KEY (`id`)

Install

pip install ddldump

Upload a new version

  1. Set a new version in ddldump/constants.py
  2. Open a PR, get it reviewed, get it merged
  3. git tag <version>
  4. git push --tags
  5. make release

About

Dump a clean version of the DDLs of your tables, so you can version them.

Resources

License

Stars

Watchers

Forks

Packages

No packages published