mirror of
https://github.com/Unleash/unleash.git
synced 2025-04-24 01:18:01 +02:00
Reduce duplication when adding a new migration.
This commit is contained in:
parent
55a4f476c9
commit
d30bc6a54c
@ -43,7 +43,7 @@ npm test
|
|||||||
|
|
||||||
1. Create `migrations/sql/NNN-your-migration-name.up.sql` with your change in SQL.
|
1. Create `migrations/sql/NNN-your-migration-name.up.sql` with your change in SQL.
|
||||||
2. Create `migrations/sql/NNN-your-migration-name.down.sql` with the rollback of your change in SQL.
|
2. Create `migrations/sql/NNN-your-migration-name.down.sql` with the rollback of your change in SQL.
|
||||||
3. Run `db-migrate create your-migration-name` and edit the generated file to run the above SQL files.
|
3. Run `db-migrate create your-migration-name` and edit the generated file to have this line: `module.exports = require('../lib/migrationRunner').create('NNN-your-migration-name');`
|
||||||
4. Run `npm run db-migrate-up`.
|
4. Run `npm run db-migrate-up`.
|
||||||
5. Generate LB artifact using `scripts/generate-liquibase-artifact` (TODO: make this internal)
|
5. Generate LB artifact using `scripts/generate-liquibase-artifact` (TODO: make this internal)
|
||||||
|
|
||||||
|
18
lib/migrationRunner.js
Normal file
18
lib/migrationRunner.js
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
var fs = require('fs');
|
||||||
|
var util = require('util');
|
||||||
|
var path = require('path');
|
||||||
|
|
||||||
|
var runMigration = function(path, db, callback) {
|
||||||
|
db.runSql(fs.readFileSync(path, {encoding: 'utf8'}), callback);
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
create: function (name) {
|
||||||
|
var format = path.resolve(__dirname, '../migrations/sql/%s.%s.sql');
|
||||||
|
|
||||||
|
return {
|
||||||
|
up: runMigration.bind(null, util.format(format, name, 'up')),
|
||||||
|
down: runMigration.bind(null, util.format(format, name, 'down'))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
@ -1,12 +1 @@
|
|||||||
var fs = require('fs');
|
module.exports = require('../lib/migrationRunner').create('001-initial-schema');
|
||||||
var util = require('util');
|
|
||||||
var path = require('path').resolve(__dirname, 'sql/001-initial-schema.%s.sql');
|
|
||||||
|
|
||||||
exports.up = function(db, callback) {
|
|
||||||
var content = fs.readFileSync(util.format(path, 'up'), {encoding: 'utf8'});
|
|
||||||
db.runSql(content, callback);
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.down = function(db, callback) {
|
|
||||||
db.runSql(fs.readFileSync(util.format(path, 'down'), {encoding: 'utf8'}), callback);
|
|
||||||
};
|
|
Loading…
Reference in New Issue
Block a user