sqlite adapter for east (node.js database migration tool) which uses node-sqlite3
All executed migrations names will be stored at _migrations table in the
current database. Object with following properties will be passed to migrate
and rollback functions:
db- instance of node-sqlite3
npm install east east-sqlite -galternatively you could install it locally
go to project dir and run
east initcreate .eastrc file at current directory
{
"adapter": "east-sqlite",
"dbFile": ""
}where dbFile is file of database which you want to migrate
now we can create some migrations
east create apples
east create bananascreated files will looks like this one
exports.migrate = function(client, done) {
var db = client.db;
done();
};
exports.rollback = function(client, done) {
var db = client.db;
done();
};edit created files and insert
to 1_apples
exports.migrate = function(client, done) {
var db = client.db;
var sqlStr = 'insert into things values($id, $name, $color)';
db.run(sqlStr, {
$id: 1,
$name: 'apple',
$color: 'red'
}, function(err) {
if (err) return done(err);
db.run(sqlStr, {
$id: 2,
$name: 'apple',
$color: 'green'
}, done);
});
};
exports.rollback = function(client, done) {
var db = client.db;
db.run('delete from things where id in (1, 2)', done);
};to 2_bananas
exports.migrate = function(client, done) {
var db = client.db;
db.run('insert into things values($id, $name, $color)', {
$id: 3,
$name: 'banana',
$color: 'yellow'
}, done);
};
exports.rollback = function(client, done) {
var db = client.db;
db.run('delete from things where id=3', done);
};now we can execute our migrations
east migrateoutput
target migrations:
1_apples
2_bananas
migrate `1_apples`
migration done
migrate `2_bananas`
migration doneand roll them back
east rollbackoutput
target migrations:
2_bananas
1_apples
rollback `2_bananas`
migration successfully rolled back
rollback `1_apples`
migration successfully rolled backyou can specify one or several particular migrations for migrate/rollback e.g.
east migrate 1_applesor
east migrate 1_apples 2_bananasRun east -h to see all commands, east <command> -h to see detail command help,
see also east page for command examples.
run east tests with this adapter