iplayabc-db-migration
v3.0.8
Published
MySQL Database migration tool
Downloads
48
Readme
iplayabc-db-migration
MySQL Database migration tool based on Umzug v3.x
Installation
Local Installation
npm install /path/to/iplayabc-db-migration-3.0.8.tgzNpm Repository Installation
npm install iplayabc-db-migrationUsage
Basic Usage
const { migrate, migrateWithConfig } = require('iplayabc-db-migration');
// Using config file
await migrate('./config.js');
// Using direct config
await migrateWithConfig({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb'
});Advanced Usage
const { createUmzugInstance } = require('iplayabc-db-migration/src/umzug-mysql');
const mysql = require('mysql2/promise');
const connection = await mysql.createConnection(dbConfig);
const umzug = createUmzugInstance(connection);
// Check pending migrations
const pending = await umzug.pending();
console.log('Pending:', pending.map(m => m.name));
// Execute migrations
const executed = await umzug.up();
console.log('Executed:', executed.map(m => m.name));Migration Files
Place your SQL files in db-migration/migrations/ directory:
db-migration/
├── config.js
└── migrations/
├── 001_init.sql
├── 002_users.sql
└── features/
└── 003_posts.sqlFeatures
- MySQL Named Lock for cluster-safe migrations
- File integrity checking with hash verification
- Transaction support for each migration
- Supports nested directory structures
- Relative path storage in migration table
Configuration
Create db-migration/config.js:
exports.migration_table = 'migrations';
exports.debug = false;Create config.js for database connection:
exports.db = {
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb',
charset: 'utf8mb4'
};