如何在 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.