0.1.2 • Published 1 month ago

knex-automigrate v0.1.2

Weekly downloads
212
License
MIT
Repository
github
Last release
1 month ago

knex-automigrate

NPM Version NPM Downloads Dependency Status

Table schema based database migration tool, built on top of the knex.js

  • Migration schema file name must be started with table_.
  • Currently supported dialects to index migration : mysql

Installation

$ npm install knex-automigrate -g

Usage

Usage: knex-automigrate [options] [command]


Commands:

  migrate:auto           Run all migration table schemas.

Options:

  -h, --help         output usage information
  -V, --version      output the version number
  --debug            Run with debugging.
  --knexfile [path]  Specify the knexfile path.
  --cwd [path]       Specify the working directory.
  --env [name]       environment, default: process.env.NODE_ENV || development

Before (traditional database migration with knex.js)

$ knex migrate:make create_users_table
// 201701010000_create_users_table.js
exports.up = function(knex, Promise) {
  return Promise.all([
    knex.schema.createTableIfNotExists('users', function(table) {
      table.increments('user_id').unsigned().comment('PK');
      table.string('email', 128).notNullable().comment('E-Mail');
      table.string('nickname', 128).notNullable().comment('Name');
    })
  ]);
});
$ knex migrate:latest
$ knex migrate:make alter_users_table
// 201701010000_alter_users_table.js
exports.up = function(knex, Promise) {
  return Promise.all([
    knex.schema.alterTable('users', function(table) {
      table.dropColumn('nickname');
      table.string('email', 64).notNullable().comment('E-Mail').alter();
      table.string('name', 64).notNullable().comment('Name');
    })
  ]);
});
$ knex migrate:latest

Migration files are,

App
 ├─ migrations
 │  ├─ 201701010000_create_users_table.js
 │  └─ 201701010000_alter_users_table.js
 └─ knexfile.js

After (database migration with knex-automigrate)

// table_users.js
exports.auto = function(migrator, knex) {
  return [
    migrator('users', function(table) {
      table.increments('user_id').unsigned().comment('PK');
      table.string('email', 128).notNullable().comment('E-Mail');
      table.string('nickname', 128).notNullable().comment('Name');
    });
  ];
});
$ knex-automigrate migrate:auto
// table_users.js
exports.auto = function(migrator, knex) {
  return [
    migrator('users', function(table) {
      table.increments('user_id').unsigned().comment('PK');
      table.string('email', 64).notNullable().comment('E-Mail');
      table.string('name', 64).notNullable().comment('Name');
    });
  ];
});
$ knex-automigrate migrate:auto

Migration files are,

App
 ├─ migrations
 │  └─ table_users.js
 └─ knexfile.js

Dependencies

License

MIT License

Author

GONZO (oss@dp.farm)

0.1.2

1 month ago

0.1.1

2 years ago

0.1.0

3 years ago

0.0.9

4 years ago

0.0.8

5 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago