Nodejs / PostgreSQL sequelize - 如何更新/更改数据库中的模型?

Posted

技术标签:

【中文标题】Nodejs / PostgreSQL sequelize - 如何更新/更改数据库中的模型?【英文标题】:Nodejs / PostgreSQL sequelize - How to update /change a model in the database? 【发布时间】:2017-04-28 22:08:45 【问题描述】:

我使用 sequelize 创建了一个模型(代码如下),但不明白如何更新模型。当我更改模型时,旧模型(带有名称、num_stars 和便利设施)仍然出现在我的数据库中,我想只要我使用 -sync() - 我确实会更新模型更改,但显然不是。任何人都可以帮忙吗?谢谢!

我的 postgreSQL 模型:db/index.js:

var db = new Sequelize('postgres://localhost:5432/ajax', 
 logging: false
);

var Hotel = db.define('hotel', 

    name: Sequelize.STRING,
    num_stars: 
     type: Sequelize.INTEGER,
     validate:  min: 1, max: 5 
   ,
    amenities: Sequelize.STRING
)

module.exports=Hotel;

server.js 的一部分

app.listen(1337, function () 
    db.sync()
    .then(function()
        console.log('Server listening!');
    );
);

【问题讨论】:

我不打算回答,因为迁移是非常特定于应用程序的,但这就是 Sequelize 迁移 (docs.sequelizejs.com/en/latest/docs/migrations) 的全部原因。您编写代码来定义新方案与旧方案的关系,Sequelize 通过它运行您的所有数据,确保根据您的规则对其进行处理。 【参考方案1】:

在 Sequelize.js 中,更新模型属于迁移进度,我知道如何做到这一点的唯一方法是通过 Sequelize CLI (npm install -g seqelize-cli)。 This previous post 应该会给你所有你需要的答案!

【讨论】:

【参考方案2】:

刚刚发现我所要做的就是添加 -sync: true -

var db = new Sequelize('postgres://localhost:5432/ajax', 
logging: false,
sync: true 
);

【讨论】:

以上是关于Nodejs / PostgreSQL sequelize - 如何更新/更改数据库中的模型?的主要内容,如果未能解决你的问题,请参考以下文章