如何在 Sequelize 中创建一个表以使用 Node JS 存储在 Postgresql 中
Posted
技术标签:
【中文标题】如何在 Sequelize 中创建一个表以使用 Node JS 存储在 Postgresql 中【英文标题】:How to Create a table in Sequelize to store in Postgressql with NodeJS 【发布时间】:2018-03-02 15:53:52 【问题描述】:我是 Postgres 和 Sequelize 的新手,我已成功连接到 DB,试图在 DB 中创建一个表,但我遇到了一个错误,即表名不存在
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);
);
哪里出错了?它说错误:关系“喜欢”不存在。任何形式的帮助表示赞赏
【问题讨论】:
【参考方案1】:Sequelize 仅通过 sync
或迁移创建表。你的模型 News
有一个 sync
方法,当被调用时会做一些事情之一
如果不带参数调用,如果表不存在则创建表
如果像这样调用News.sync( force: true )
,它将删除当前表(如果存在)并创建一个新表。
如果像这样调用News.sync( alter: true )
,它将添加模型中尚未包含的任何新字段(这是 v4 功能)。
这些技术在快速制作原型时很有用,但最好的解决方案是使用迁移。迁移允许您跟踪跨开发、不同 git 分支和生产对数据库的更改。它是迄今为止最好的解决方案,但需要少量的前期成本和支持。
如果您正在从事黑客马拉松风格的项目,我会选择alter: true
,但如果您正在构建一些您将要工作一段时间的东西,那么一定要了解@987654321 @。
【讨论】:
News.sync(force: false).then(function (err) if(err) console.log('An error occur while creating table'); else console.log('Item table created successfully'); );
上面的评论是我试图在控制台中做的,它打印创建表时发生错误但是表被创建,我也可以插入值。顺便说一下,你能给我一个迁移 API 的简单例子吗
它不会打印出任何错误,它会控制表名“user”
啊,我明白了。 .then
不报告错误。 .then
的参数之一是成功结果。查找错误使用.catch
已使用 catch no errors print 感谢您帮助我,兄弟我是新手来续集想要探索更多所以你能建议我相同的资源以上是关于如何在 Sequelize 中创建一个表以使用 Node JS 存储在 Postgresql 中的主要内容,如果未能解决你的问题,请参考以下文章