db-migrate-cli
Version:
A CLI tool for managing database migrations
42 lines (36 loc) • 1.41 kB
JavaScript
const Migration = require("./src/migration");
const sql = `-- UP
CREATE TABLE users (
id VARCHAR(36) PRIMARY KEY DEFAULT uuid(),
phone VARCHAR(20) UNIQUE NOT NULL,
name VARCHAR(255),
dob DATE,
gender ENUM('male', 'female', 'other'),
fluency_level ENUM('beginner', 'intermediate', 'advanced'),
last_login_at TIMESTAMP NULL DEFAULT NULL,
onboarding_at TIMESTAMP NULL DEFAULT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
CREATE TABLE temp_users (
id VARCHAR(36) PRIMARY KEY DEFAULT uuid(),
phone VARCHAR(20) UNIQUE NOT NULL,
name VARCHAR(255),
dob DATE,
gender ENUM('male', 'female', 'other'),
fluency_level ENUM('beginner', 'intermediate', 'advanced'),
last_login_at TIMESTAMP NULL DEFAULT NULL,
onboarding_at TIMESTAMP NULL DEFAULT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- DOWN
DROP TABLE IF EXISTS users;
DROP TABLE IF EXISTS temp_users;
`;
const migration = new Migration();
const { sql: upSql, startLine: upStartLine } = migration.parseUpBlock(sql);
console.log(upStartLine, upSql);
const { sql: downSql, startLine: downStartLine } =
migration.parseDownBlock(sql);
console.log(downStartLine, downSql);