npm migration package for mysql, mariadb
- Installation
- Setup
- FOR ES6
- FOR CommonJs
- Update package.json
 
- Table Migration
- create migration
- code sample for table migration file
- run migration file
- up
- rollback
 
 
- Data Seeding
- create seeding
- code sample for data seeding file
- run seeding file
- up
- rollback
 
 
npm install mysql-migratorcreate migrator.js with the following code.
import { Migrator, Output } from 'mysql-migrator'
import path from 'path'
import { fileURLToPath } from 'url'
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
const dbConfig = {
  host: 'localhost',
  user: 'your-user-name',
  port: 3306,
  password: 'your-password',
  database: 'your-database'
}
const migrationsPath = __dirname + '/migrations'
const migrator = new Migrator(dbConfig, migrationsPath)
const result = await migrator.init()
Output(result)
process.exit()const { Migrator, Output } = require('mysql-migrator')
const dbConfig = {
  host: 'localhost',
  user: 'your-user-name',
  port: 3306,
  password: 'your-password',
  database: 'your-database'
}
const migrationsPath = __dirname + '/migrations'
const migrator = new Migrator(dbConfig, migrationsPath)
const result = await migrator.init()
Output(result)
process.exit()...
  "scripts": {
    ...
    "migrate": "node migrator.js"
  },
...
node migrator.js migration:create create_table_useror
npm run migrate migration:create create_table_userthere are two function up and rollback functions.
- up is for upgrading
- rollback is for downgrading. to use this function when you need to roll back to previous batch.
//write sql statement to create or modify
module.exports = {
 up: async (tbl) => {
   return await tbl.create('tblUser', {
     id: 'int NOT NULL PRIMARY KEY AUTO_INCREMENT',
     name: 'varchar(254) NOT NULL'
   })
 },
 rollback: async (tbl) => {
   return await tbl.dropTable('tblUser')
 }
}
node migrator.js migration:upor
npm run migrate migration:upnode migrator.js migration:rollbackor
npm run migrate migration:rollbacknode migrator.js seeding:create user_data_seedingor
npm run migrate seeding:create user_data_seedingthere are two function up and rollback functions.
- up is for upgrading
- rollback is for downgrading. to use this function when you need to roll back to previous batch.
//write sql statement to create or modify
module.exports = {
 up: async (_query) => {
   const queryString = 'INSERT INTO tblUser VALUES(1,"hello")'
   await _query(queryString)
 },
 rollback: async (_query) => {
   const queryString = 'TRUNCATE TABLE tblUser'
   await _query(queryString)
 }
}node migrator.js seeding:upor
npm run migrate seeding:upnode migrator.js seeding:rollbackor
npm run migrate seeding:rollbackThank You for Visiting to my repo. :)