如何使用Sequalize迁移创建数据库

时间:2020-06-14 16:41:03

标签: node.js migration sequelize.js

如何在运行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;
};

0 个答案:

没有答案