如何在 Sequelize 中创建一个 table 以使用 Node JS 存储在 Postgresql 中
How to Create a table in Sequelize to store in Postgressql with NodeJS
我是 Postgres 和 Sequelize 的新手,我已经成功连接到数据库,试图在数据库中创建一个 table,这就是我遇到错误 tablename doesn't exist
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);
});
哪里出错了?它说错误:关系 "likes" 不存在。感谢任何形式的帮助
Sequelize 仅通过 sync
或迁移创建 tables。您的模型 News
有一个 sync
方法,当被调用时会做一些事情
如果不带参数调用,它将创建 table 如果它不存在
如果像这样调用 News.sync({ force: true })
它会删除当前的 table 如果它存在并创建一个新的。
如果像这样调用 News.sync({ alter: true })
它将添加模型中尚不存在的任何新字段(这是 v4 功能)。
这些技术在快速制作原型时很有用,但最好的解决方案是使用迁移。迁移允许您跟踪开发、不同 git 分支和生产中对数据库的更改。它是迄今为止最好的解决方案,但确实需要少量的前期成本和支持。
如果你正在从事黑客马拉松风格的项目,我会选择 {alter: true}
,但如果你正在构建一些你将要工作一段时间的东西,那么一定要知道 migrations API.
我是 Postgres 和 Sequelize 的新手,我已经成功连接到数据库,试图在数据库中创建一个 table,这就是我遇到错误 tablename doesn't exist
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);
});
哪里出错了?它说错误:关系 "likes" 不存在。感谢任何形式的帮助
Sequelize 仅通过 sync
或迁移创建 tables。您的模型 News
有一个 sync
方法,当被调用时会做一些事情
如果不带参数调用,它将创建 table 如果它不存在
如果像这样调用 News.sync({ force: true })
它会删除当前的 table 如果它存在并创建一个新的。
如果像这样调用 News.sync({ alter: true })
它将添加模型中尚不存在的任何新字段(这是 v4 功能)。
这些技术在快速制作原型时很有用,但最好的解决方案是使用迁移。迁移允许您跟踪开发、不同 git 分支和生产中对数据库的更改。它是迄今为止最好的解决方案,但确实需要少量的前期成本和支持。
如果你正在从事黑客马拉松风格的项目,我会选择 {alter: true}
,但如果你正在构建一些你将要工作一段时间的东西,那么一定要知道 migrations API.