新手问题 大家平常是怎么更新表字段

jiemoon · 2015年08月19日 · 最后由 msg7086 回复于 2015年08月21日 · 1881 次阅读

在这之前都直接用 SQL 来建立 表结构和字段,在 rails 里看教程都是用 migrate 来管理表结构。

这边有两个问题:

  1. rails 程序部署的话,一般应该是程序和表结构一起更新的,那在修改表字段的时候不是会锁表。在之前,我一般是用 SQL 先把要修改的表结构先处理好
  2. 部署完成,如果有问题要回滚,然后 migrate 也一起回滚,不是会有点坑

那你用 SQL 来跟新表结构,一样会锁表啊!

真正到了那些会锁表的情况(上几百万行的数据的表)一般都是手工处理表结构,而不是用 Migration 了,Rails Migration 适用于中小型数据的场景,便于开发者多个本地服务器之间统一表结构,也能在绝大多数生产环境,数据量巨大的场景的表结构变动上面用。

在之前,我一般是用 SQL 先把要修改的表结构先处理好

我想知道是怎么处理的?

楼主提出的 “提前修改表结构” 是不能很好应对部署出错的,回滚版本的时候,migration 一起回滚,是很好的实践,保证了数据库和代码的匹配。 如果有更复杂的情况,比如遗留数据处理,手工写任务处理。

所以要有 staging server。 大量锁表就老老实实停站维护咯,放在半夜没人的时候部署就行了,预告下停个十几分钟。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册