npm install sql-ddl-sync- MySQL
- PostgreSQL
- SQLite
This module is part of ORM. It's used synchronize model tables in supported dialects. Sorry there is no API documentation for now but there are a couple of tests you can read and find out how to use it if you want.
Install orm & the required driver (eg: mysql).
Create a file with the contents below and change insert your database credentials.
Run once and you'll see table ddl_sync_test appear in your database. Then make some changes to it (add/drop/change columns)
and run the code again. Your table should always return to the same structure.
varorm=require("orm");varmysql=require("mysql");varSync=require("sql-ddl-sync").Sync;orm.connect("mysql://username:password@localhost/database",function(err,db){if(err)throwerr;vardriver=db.driver;varsync=newSync({dialect : "mysql",driver : driver,debug : function(text){console.log("> %s",text);}});sync.defineCollection("ddl_sync_test",{id : {type: "serial",key: true,serial: true},name : {type: "text",required: true},age : {type: "integer"},male : {type: "boolean"},born : {type: "date",time: true},born2 : {type: "date"},int2 : {type: "integer",size: 2},int4 : {type: "integer",size: 4},int8 : {type: "integer",size: 8},float4 : {type: "number",size: 4},float8 : {type: "number",size: 8},photo : {type: "binary"}});sync.sync(function(err){if(err){console.log("> Sync Error");console.log(err);}else{console.log("> Sync Done");}process.exit(0);});});{type: 'uuid',defaultExpression: 'uuid_generate_v4()'}To test, first make sure you have development dependencies installed. Go to the root folder and do:
npm installThen, just run the tests.
npm testIf you have a supported database server and want to test against it, first install the module:
# if you have a mysql server
npm install mysql
# if you have a postgresql server
npm install pgAnd then run:
node test/run-db --uri 'mysql://username:password@localhost/database'

