0.11.6 • Published 6 months ago

@fxjs/sql-ddl-sync v0.11.6

Weekly downloads
35
License
ISC
Repository
github
Last release
6 months ago

Fibjs SQL DDL Synchronization

NPM version Build Status Build status

NOTICE: This is node-sql-ddl-sync's fibjs version, thx a lot to node-sql-ddl-sync's author : )

Install

npm install @fxjs/sql-ddl-sync

Dialects

  • MySQL
  • SQLite

About

Originally, this module is part of @fxjs/orm. It's used synchronize model tables in supported dialects.

But now, it could run without @fxjs/orm, just install @fxjs/db-driver instead 🚀 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.

Version Match

sql-ddl-sync Versionrequired orm Version
sql-ddl-sync <= 0.3.xorm < 1.10.3
sql-ddl-sync = 0.4.xorm >= 1.10.3
sql-ddl-sync >= 0.5.xdon't need!

Example

Install @fxjs/db-driver. 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.

const DBDriver   = require("@fxjs/db-driver");
const mysql = require("mysql");
const Sync  = require("@fxjs/sql-ddl-sync").Sync;

const dbdriver = DBDriver.create("mysql://username:password@localhost/database");

const sync = new Sync({
	dbdriver: dbdriver,
	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" }
});

try {
	sync.sync()
	console.log("> Sync Done");
} catch (err) {
	if (err) {
		console.log("> Sync Error");
		console.log(err);
	}
}

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:

And then run:

URI=mysql://username:password@localhost/database fibjs test/run-db

Credits

This repo is checked out from Diogo Resende's node-sql-ddl-sync, which is one part of orm, and orm is the original source of @fxjs/orm. Thx a lot to him and his partner.

0.11.6

6 months ago

0.11.5

6 months ago

0.11.4

12 months ago

0.11.1

2 years ago

0.11.2

2 years ago

0.11.3

1 year ago

0.11.3-alpha.0

1 year ago

0.10.4-alpha.2

2 years ago

0.11.0

2 years ago

0.10.4-alpha.0

2 years ago

0.11.0-alpha.0

2 years ago

0.10.3

2 years ago

0.10.4

2 years ago

0.10.5

2 years ago

0.10.1

2 years ago

0.10.2

2 years ago

0.10.0

2 years ago

0.9.0

2 years ago

0.8.8

2 years ago

0.8.5

2 years ago

0.8.4

2 years ago

0.8.7

2 years ago

0.8.6

2 years ago

0.8.1

2 years ago

0.8.0

2 years ago

0.8.3

2 years ago

0.8.2

2 years ago

0.7.1

4 years ago

0.7.0

4 years ago

0.6.4

5 years ago

0.6.3

5 years ago

0.6.2

5 years ago

0.6.1

5 years ago

0.6.0

5 years ago

0.5.7

5 years ago

0.5.6

5 years ago

0.5.5

5 years ago

0.5.4

5 years ago

0.5.3

5 years ago

0.5.2

5 years ago

0.5.1

5 years ago

0.5.0

5 years ago

0.4.1

5 years ago

0.4.0

5 years ago

0.3.9

5 years ago

0.3.8

6 years ago

0.3.7

6 years ago

0.3.6

6 years ago

0.3.5

6 years ago

0.3.4

6 years ago

0.3.3

6 years ago

0.3.2

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago

0.0.1

6 years ago