sequelize-migrator

Migrate SequelizeJS migrations without SequelizeMeta table dependency and depdency management.

sequelize-migrator

Migrate SequelizeJS migrations without SequelizeMeta table dependency and depdency management.

npm install -g sequelize-migrator

  Usage: sequelize-migrator [options] <up|down>
 
  Options:
 
    -h, --help             output usage information
    -V, --version          output the version number
    -c, --config [config]  Specify a config file for database credentials
    -p, --path [path]      Specify a specific migrations folder.
 
 Additional options:
 
   SEQ_URL   - Specify a URL/URI for connecting to your database.
   SEQ_DB    - Specify database name
   SEQ_USER  - Specify database username
   SEQ_PW    - Specify database password
   SEQ_HOST  - Specify database host
   SEQ_PORT  - Specify database port
$: sequelize-migrator -c ../../global_config.json -p ../migrations up
$: sequelize-migrator -c ../../global_config.json -p ../migrations down
$: sequelize-migrator -c ../../global_config.json up # looks for ./migrations within path
module.exports = {
  username: process.env.SEQ_USER    || '',
  password: process.env.SEQ_PW      || null,
  database: process.env.SEQ_DB      || '',
  host:     process.env.SEQ_HOST    || '127.0.0.1',
  port:     process.env.SEQ_PORT    || [dialect specific]
  dialect:  process.env.SEQ_DIALECT || '',
}

Dependencies can be added via a "deps" array key within the migration files like so...

module.exports = {
  upfunction(migrationDataTypesdone) {
    migration.addColumn('users', 'email', DataTypes.STRING).complete(done);
  },
  downfunction(migrationDataTypesdone) {
    migration.removeColumn('users', 'email').complete(done);
  }
}
module.exports = {
  upfunction(migrationDataTypesdone) {
    migration.addColumn('users', 'email', DataTypes.STRING).complete(done);
  },
  downfunction(migrationDataTypesdone) {
    migration.removeColumn('users', 'email').complete(done);
  }
}

Note: [timestamp] is before usersAddEmail

module.exports = {
  deps: [
    '20140105151356-usersAddEmail'
  ],
  upfunction(migrationDataTypesdone) {
    migration.addColumn('users', 'test', DataTypes.STRING).complete(done);
  },
  downfunction(migrationDataTypesdone) {
    migration.removeColumn('users', 'test').complete(done);
  }
}

Note: [timestamp] is before usersAddTest

module.exports = {
  deps: [
    '20140105151200-usersAddTest'
  ],
  upfunction(migrationDataTypesdone) {
    migration.addColumn('users', 'test2', DataTypes.STRING).complete(done);
  },
  downfunction(migrationDataTypesdone) {
    migration.removeColumn('users', 'test2').complete(done);
  }
}

Dependencies are matched on a case-sensitive regex. Feel free to shorten dependency names such as 20140105151200-usersAddTest into usersAddTest. This will fetch all migrations that match "usersAddTest".