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

Kan*_*n T 4 postgresql rdbms node.js express sequelize.js

我是Postgres和Sequelize的新手,我已成功连接到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);
}); 
Run Code Online (Sandbox Code Playgroud)

哪里弄错了?它说错误:关系"喜欢"不存在.任何形式的帮助表示赞赏

Zek*_*erg 14

Sequelize仅创建表sync或迁移.你的模型News有一个sync方法,当被调用时会做一些事情

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

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

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

这些技术在快速原型设计时非常有用,但最佳解决方案是使用迁移.迁移允许您跟踪开发,不同git分支和生产中数据库的更改.它是迄今为止最好的解决方案,但确实带来了少量的前期成本和买入费.

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