导致迁移未运行

时间:2020-05-03 13:34:37

标签: node.js orm graphql migration sequelize.js

我在Sequelize上遇到了一个奇怪的问题,这在我尝试运行迁移时没有遇到过。我得到以下输出:

Loaded configuration file "config\config.json"
Using environment "development"

该程序刚刚存在。

我已经多次检查了我的代码,一切都检查了。

型号代码:

module.exports = {
up: (queryInterface, Sequelize) => {
    return queryInterface.createTable("users", {
        id: {
            allowNull: false,
            autoIncrement: true,
            primaryKey: true,
            type: Sequelize.INTEGER
        },
        username: {
            type: Sequelize.STRING,
            unique: true,
            allowNull: false,
            validate: {
                notEmpty: true
            }
        },
        email: {
            type: Sequelize.STRING,
            unique: true,
            allowNull: false,
            validate: {
                notEmpty: true,
                isEmail: true
            }
        },
        password: {
            type: Sequelize.STRING,
            allowNull: false,
            validate: {
                notEmpty: true,
                len: [7, 42]
            }
        },
        createdAt: {
            type: Sequelize.DATE
        },
        updatedAt: {
            type: Sequelize.DATE
        }
    })
},
down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable("users")
}

}

这是我的model / index.js的摘录:

const fs = require("fs")
const path = require("path")
const Sequelize = require("sequelize")

const basename = path.basename(__filename)
const env = process.env.TEST_ENV || "development"
const config = require(`${__dirname}/../config/config.js`)[env]
const db = {}

console.log('config', config)

let sequelize
if (config.use_env_variable) {
    sequelize = new Sequelize(process.env[config.use_env_variable], config)
} else {
    sequelize = new Sequelize(
        config.database,
        config.username,
        config.password,
        config
    )
}

几乎就像续集一样,它没有获取任何迁移文件。我不确定该如何解决。任何帮助,将不胜感激。

4 个答案:

答案 0 :(得分:7)

所以问题出在节点版本上。

我可能应该提供更多的上下文信息,但是我切换了笔记本电脑,在新笔记本电脑上安装了14.1.0版,而在旧笔记本电脑上安装了10.13.0版!因此切换版本就可以了。

答案 1 :(得分:7)

更新 pg 解决了我的问题。

npm install --save pg@latest

答案 2 :(得分:1)

在将我的节点版本从 12.16.2 更新到 14.15.4 后,我也遇到了这个问题,突然迁移停止工作,没有显示任何错误消息。要解决此问题,只需运行:

npm install pg@latest

根据 pg 的文档,要使用节点版本 >= 14.x,由于节点 14 分支上的一些内部流更改,您需要安装 pg@8.2.x 或更高版本。

要进一步阅读,请查看 pg 的官方文档 here

答案 3 :(得分:-2)

尝试在终端中运行此命令 sequelize db:migrate:all