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 - 如何更新/更改数据库中的模型?的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS,将来自 MySQL 和 PostgreSQL 的数据存储在 SQLite 中

nodejs中的RXJS PostgreSQL背压

如何以正确的方式将 PostgreSQL 连接到 NodeJS? [复制]

使用 PostgreSQL/NodeJS 获取 JOIN 表作为结果数组

无法在 Nodejs 中连接本地 PostgreSQL 数据库

为 NodeJS + PostgreSQL Web 应用程序创建 Docker 映像