GitHub - harish2704/node-sql-ddl-sync: NodeJS SQL DDL Synchronization · GitHub
Skip to content

harish2704/node-sql-ddl-sync

 
 

Folders and files

Repository files navigation

NodeJS SQL DDL Synchronization

Build Status

Install

npm install sql-ddl-sync

Dialects

  • MySQL
  • PostgreSQL

About

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.

Example

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.

var orm    = require("orm");
var mysql  = require("mysql");
var Sync   = require("sql-ddl-sync").Sync;

orm.connect("mysql://username:password@localhost/database", function (err, db) {
	if (err) throw err;
	var driver = db.driver;

	var sync = new Sync({
		dialect : "mysql",
		driver  : driver,
		debug   : function (text) {
			console.log("> %s", text);
		}
	});

	sync.defineCollection("ddl_sync_test", {
		id     : { type : "number", primary: true, serial: true },
		name   : { type : "text", required: true },
		age    : { type : "number", rational: true },
		male   : { type : "boolean" },
		born   : { type : "date", time: true },
		born2  : { type : "date" },
		int2   : { type : "number", size: 2 },
		int4   : { type : "number", size: 4 },
		int8   : { type : "number", size: 8 },
		float4 : { type : "number", rational: true, size: 4 },
		float8 : { type : "number", rational: true, size: 8 },
		type   : { type : "enum", values: [ 'dog', 'cat'], defaultValue: 'dog', required: true },
		photo  : { type : "binary" }
	});

	sync.sync(function (err) {
		if (err) {
			console.log("> Sync Error");
			console.log(err);
		} else {
			console.log("> Sync Done");
		}
		process.exit(0);
	});
});

Test

To test, first make sure you have development dependencies installed. Go to the root folder and do:

npm install

Then, just run the tests.

npm test

If 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 pg

And then run:

node test/run-db --uri 'mysql://username:password@localhost/database'

About

NodeJS SQL DDL Synchronization

Resources

License

Stars

Watchers

Forks

Packages

Contributors

Languages

  • JavaScript 100.0%