管理已发布系统中数据模型更改的最佳实践

时间:2008-12-30 15:23:49

标签: database-design data-modeling

我即将着手开发一个Web应用程序项目。

我想早点获得一些东西,经常让早期采用者玩和反馈。

但我设想随着项目的进展,数据模型会发生变化,我对系统的理解也会有所改善。

如何管理适当更新数据模型并防止早期采用者丢失数据的困境?我应该简单地提出一个警告“用户要小心”,还是应该努力创建迁移脚本?

5 个答案:

答案 0 :(得分:5)

您使用的是什么平台? Ruby on Rails为您提供迁移脚本作为包的一部分。如果你在Java-land,你可能想看看migrate4j

最后,我建议做两件事:警告用户他们正在使用alpha软件,并使用迁移脚本,以便尽可能保留他们的数据(以免他们感到恼怒并失去兴趣)。

答案 1 :(得分:3)

Scott Ambler写了一些关于敏捷数据库的好东西。有一个book和一个website

答案 2 :(得分:2)

对于我的公司......

如果可能,数据库必须向后兼容与当前版本的软件是一个硬性规则。如果它没有采取焦油和羽毛战术来对抗罪犯。

在我们的案例中,我们为客户编写自定义软件应用程序,因此我们可以灵活地实现各种方式......但更多时候,客户希望通过实时数据查看其更改< / strong>即可。因此,我们必须能够支持当前版本的应用程序,以及客户正在审核和批准的新版本的应用程序。

我们做的其他一些事情是投入 Red Gate的Sql Compare和Sql Data Compare 。这样可以确保开发环境中的更改能够正确地转移到生产环境中。

我们最近也放弃了对存储过程的使用,因为它们在维护方面提供了一个不必要的抽象层......而且它们是邪恶的! =)

答案 3 :(得分:1)

我第一次听说敏捷数据是Martin Fowler and Pramod Sadalage的话题。

答案 4 :(得分:0)

@bradheintz;我正在使用Microsoft Web Stack。

我在这里找到了一个简短的.NET相关迁移工具列表:

http://flux88.com/blog/net-database-migration-tool-roundup/