Skip to content

Latest commit

 

History

History
150 lines (108 loc) · 2.65 KB

README.md

File metadata and controls

150 lines (108 loc) · 2.65 KB

east postgres

postgresql adapter for east (node.js database migration tool) which uses node-postgres

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:

Installation

npm install east east-postgres -g

alternatively you could install it locally

Usage

go to project dir and run

east init

create .eastrc file at current directory

{
	"adapter": "east-postgres",
	"url": "postgres://user:[email protected]:5432/database"
}

where url is url for connect to postgresql db: "postgres://someuser:somepassword@somehost:381/sometable"

now we can create some migrations

east create apples
east create bananas

created 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($1, $2, $3)';
	db.run(sqlStr, [1, 'apple', 'red'], function(err) {
		if (err) return done(err);
		db.run(sqlStr, [2, 'apple', '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($1, $2, $3)', [3, 'banana', '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 migrate

output

target migrations:
	1_apples
	2_bananas
migrate `1_apples`
migration done
migrate `2_bananas`
migration done

and roll them back

east rollback

output

target migrations:
	2_bananas
	1_apples
rollback `2_bananas`
migration successfully rolled back
rollback `1_apples`
migration successfully rolled back

you can specify one or several particular migrations for migrate/rollback e.g.

east migrate 1_apples

or

east migrate 1_apples 2_bananas

Run east -h to see all commands, east <command> -h to see detail command help, see also east page for command examples.

Running test

run east tests with this adapter