the*_*man 11 migration orm node.js sequelize.js graphql
我在使用 Sequelize 时遇到了一个我以前从未遇到过的奇怪问题,当我尝试运行迁移时没有任何反应。我得到以下输出:
Loaded configuration file "config\config.json"
Using environment "development"
Run Code Online (Sandbox Code Playgroud)
该程序刚刚存在。
我已经多次检查我的代码,一切都检查出来了。
型号代码:
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")
}
Run Code Online (Sandbox Code Playgroud)
}
这是我的模型/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
)
}
Run Code Online (Sandbox Code Playgroud)
这几乎就像 sequelize 没有获取任何迁移文件一样。我不确定我应该如何解决这个问题。对此的任何帮助将不胜感激。
the*_*man 21
所以问题出在节点版本上。
我可能应该提供更多的上下文开始,但我换了笔记本电脑,在新笔记本电脑上安装了 14.1.0 版,而在旧笔记本电脑上安装了 10.13.0 版!。所以切换版本成功了。
小智 7
在将节点版本从 12.16.2 更新到 14.15.4 后,我也遇到了这个问题,迁移突然停止工作,并且没有显示错误消息。要解决此问题,只需运行:
npm install pg@latest
Run Code Online (Sandbox Code Playgroud)
根据 pg 的文档,要使用 >= 14.x 的节点版本,由于节点 14 分支上的一些内部流更改,您将需要安装 pg@8.2.x 或更高版本。
如需进一步阅读,请在此处查看 pg 的官方文档。
| 归档时间: |
|
| 查看次数: |
3817 次 |
| 最近记录: |