如何在运行npm run migrate up
时首先创建数据库,然后在迁移后创建表。
我想也许我可以使用
sequelize.query(
CREATE DATABASE IF NOT EXISTS "${database}"
)。then(() => console.log('数据库已创建'));
但是我遇到了这个错误
执行(默认):如果不存在,则创建数据库“ vol_db4” (默认):如果不存在,则创建表“ SequelizeMeta”(“名称” VARCHAR(255)NOT NULL UNIQUE,PRIMARY KEY(“ name”));未处理 拒绝SequelizeDatabaseError:“ NOT”或附近的语法错误
import { Sequelize } from 'sequelize-typescript';
import Umzug = require('umzug');
const sequelize = new Sequelize({
dialect: 'postgres',
host: 'localhost',
port: 5432,
username: 'postgres',
password: 'root',
database: 'db' ===> I need this to be created first with my db migration.... not manually
});
const umzug = new Umzug({
storage: 'sequelize',
storageOptions: { sequelize },
logging: false,
migrations: {
params: [
sequelize,
sequelize.constructor,
],
path: './src/volume/migrations',
pattern: /\.ts$/,
},
});
const task = (process.argv[2] || '').trim();
switch (task) {
case 'up':
umzug.up()
.then((result) => {
console.log('Migrations up went successful!', result);
process.exit(0);
});
break;
case 'down':
umzug.down()
.then((result) => {
console.log('Migrations down went successful!', result);
process.exit(0);
});
break;
default:
break;
};