如何在 Sequelize 中创建一个表,以使用 NodeJS 存储在 Postgressql 中



我是Postgres和Sequelize的新手,我已经成功连接到数据库,尝试在数据库中创建一个表,这是我遇到错误的地方,表名不存在

sequelize.authenticate().then(() => {
console.log("Success!");
var News = sequelize.define('likes', {
title: {
type: Sequelize.STRING
},
content: {
type: Sequelize.STRING
}
}, {
freezeTableName: true
});
News.create({
title: 'Getting Started with PostgreSQL and Sequelize',
content: 'Hello there'
});
News.findAll({}).then((data) => {
console.log(data);
}).catch((err) => {
console.log(err);
});
}).catch((err) => {
console.log(err);
}); 

我哪里犯了错误?它说错误:关系"喜欢"不存在。感谢任何形式的帮助

Sequelize 仅通过sync或迁移创建表。News,您的模型有一个sync方法,当调用该方法时,该方法将执行以下几项操作之一

如果没有参数调用,它将创建表(如果不存在)

如果像这样调用News.sync({ force: true })它将删除当前表(如果存在)并创建一个新表。

如果像这样调用News.sync({ alter: true })它将添加模型中尚未存在的任何新字段(这是 v4 功能)。

这些技术在快速原型设计时可能很有用,但最好的解决方案是使用迁移。通过迁移,可以跨开发、不同的 git 分支和生产环境跟踪对数据库的更改。这是迄今为止最好的解决方案,但确实需要少量的前期成本和支持。

如果你正在做一个黑客马拉松风格的项目,我会选择{alter: true},但如果你正在构建一些你将要工作一段时间的东西,一定要了解迁移API。

最新更新