我与我们的DBA讨论了如何更改数据库模式。他的观点是所有的变化都必须是可逆的。例如:向后兼容的数据库更改
- 废弃的表格/列只要它们变得冗余就不应该立即删除。相反,他们应该保留至少几个版本。
- 而是重命名表/列,创建一个新表/列,然后从旧的内容复制到新
- 当一个存储过程/触发器命名为“富”需要修改,离开原来的存储过程/触发,并创建一个名为'foo2'的新存储过程/触发器。当然,这意味着对存储过程/触发器的所有引用必须更新,以引用新的名称
这种方法的好处是,可以把数据库切换到以前的版本,如果(例如)发布失败,需要恢复到以前版本的应用程序。如果简单地删除表和列,这是不可能的。
我有我自己对这种做法是否明智的意见,但我会保持他们对自己暂时生怕偏置的答复。如果它有所不同,该环境是一家开发社交网络应用程序的创业公司。
我已添加环境详细信息 – 2009-09-24 16:07:48