lfb / nodejs-koa-blog

基于 Node.js Koa2 实战开发的一套完整的博客项目网站
https://www.boblog.com
MIT License
1.78k stars 460 forks source link

强制同步问题 #21

Open moshuchao opened 5 years ago

moshuchao commented 5 years ago

// core/db.js
sequelize.sync({
    force: false
})
``
这么写不会导致原来的数据丢失吗?
lfb commented 5 years ago
// core/db.js
sequelize.sync({
    force: false
})
``
这么写不会导致原来的数据丢失吗?

你好,force: false 这样不会,如果 force: true 就会。等于true的意思是删表重新新建表的意思,既然删除表重新新建表,那么肯定数据也会没了。

moshuchao commented 5 years ago

force为false时怎么同步表字段啊?

lfb commented 5 years ago

force为false时怎么同步表字段啊?

在开发阶段,在你创建表成功后,你新增或者删除了表字段,sequelizejs是不会重新再创建表的了,要么你手动删除该表,要么把force设置为true字段重新创建表,注意,force为true 会删除所有的表,在项目线上千万不能把force设置为true。

MythRui commented 5 years ago

强制为假时怎么同步表字段啊?

在开发阶段,在你创建表成功后,你新增或者删除了表字段,sequelizejs是不会重新再创建表的了,要么你手动删除该表,要么把力设置为真字段重新创建表,注意,force为true会删除所有的表,在项目线上千万不能把force设置为true。

线上环境是force: false,如果后期需要在表中新增一个字段,但是又不能删表,那么直接在数据库增加字段而不需要在models 的init中新增的对吗?这样的话 是不是不太优雅,会导致数据库有的字段 在models创建数据库时是不存在的