30 lines
870 B
JavaScript
30 lines
870 B
JavaScript
const dotenv = require('dotenv');
|
|
const path = require('path');
|
|
const { execSync } = require('child_process');
|
|
|
|
dotenv.config({ path: path.resolve(process.cwd(), `.env`) });
|
|
|
|
const db = {
|
|
user: process.env.DB_USERNAME,
|
|
pass: process.env.DB_PASSWORD,
|
|
host: process.env.DB_MIGRATION_HOST,
|
|
port: process.env.DB_PORT,
|
|
name: process.env.DB_DATABASE,
|
|
};
|
|
const dbUrl = `mysql://${db.user}:${db.pass}@tcp(${db.host}:${db.port})/${db.name}`;
|
|
|
|
const args = process.argv.slice(2).join(" ");
|
|
const migrations = path.join(process.cwd(), "migrations");
|
|
|
|
const cmd = [
|
|
"docker run --rm",
|
|
`-v "${migrations}:/migrations"`,
|
|
"migrate/migrate",
|
|
"-path=/migrations",
|
|
`-database "mysql://${db.user}:${db.pass}@tcp(${db.host}:${db.port})/${db.name}"`, // Use double quotes
|
|
args,
|
|
].join(" ");
|
|
|
|
console.log(cmd);
|
|
execSync(cmd, { stdio: "inherit" });
|