use*_*478 5 java django orm hibernate django-south
我一直在使用South来跟踪和管理数据库架构更改的Django项目上进行工作。我正在使用Google Web Toolkit开始一个新的Java项目,想知道是否有一个等效的工具。对于那些不知道的人,这是South的工作:
我还没有决定我的Java ORM,但是Hibernate看起来是最受欢迎的。对我而言,轻松进行数据库架构更改的能力将是一个重要因素。
哇,南方听起来棒极了!我不确定有什么开箱即用的工具可以为您提供如此多的帮助,但是如果您选择 Hibernate 作为您的 ORM 解决方案,您可以构建自己的增量数据迁移套件,而不会遇到很多麻烦。
这是我在自己的项目中使用的方法,它对我来说效果很好,持续了几年,并且进行了几次更新/架构更改:
在数据库中维护一个 schema_version 表,该表仅定义一个表示数据库架构版本的数字。如果您愿意,可以在 Hibernate 范围之外处理该表。
在代码中维护架构的“当前”版本号。
当代码中的版本号比数据库的版本号新时,您可以使用 Hibernate 的 SchemaUpdate 实用程序,它将检测任何模式添加(注意,只是添加),例如新表、列和约束。
最后,如果您愿意的话,我维护了一个“脚本”,其中的迁移步骤不仅仅是通过所需的架构版本号来标识的架构更改。例如,新列需要应用默认值或类似性质的值。
这听起来可能需要做很多工作,尤其是当您来自一个为您处理很多工作的环境时,但是您可以使用 Hibernate 快速完成这样的设置,并且很容易添加到其中在。在那段时间里,除了添加新的迁移任务之外,我从未对我的增量更新框架进行任何更改。
希望有人能够为更加“不干涉”的方法提供一个好的答案,但我想我会分享一种对我来说非常有效的方法。
祝你好运!
| 归档时间: |
|
| 查看次数: |
2364 次 |
| 最近记录: |