远程合作开发时如何同步每个人的表结构(Java Spring环境)
平时公司内开发都是使用同一数据库,现在需要和别人远程合作开发,如何能同步两者开发时表结构的修改?.NET中的EntityFramework和RoR中ActiveRecord提供的脚手架工具都可以自动跟踪历史修改,但是Java中的Hibernate似乎没有对应的功能。
现在能想到的是下面方案
1.用版本管理同步一份SQL文件,然后用diff工具比较再修改表结构。
2.用版本管理工具管理脚本,每一次变更就多一个脚本。这样省掉了比较,然后手写更改代码。但是似乎不容易跟踪从那个文件开始执行。
@greatghoul
提出了可以使用其他成熟的数据库迁移工具来维护数据库,比如单单用
Django
,来维护数据库迁移。且提供了一可用的迁移工具,参见
Alembic
六分仪元渡
11 years, 6 months ago
Answers
Java 里面似乎没有什么好的 Database Migration 工具。
可以尝试下 Python 的 Alembic 或者 Rails 的 AcitveRecord Migration
单独建个项目,用来维护 Migration 脚本,然后每次有更新就执行将数据库结构同步到最新版就好了。
当然,你也可以搜索下 Java 的 Migration 工具,比如 flywaydb ,有兴趣的话,可以来听一听。
如果你在西安,本周六(12月14日)下午1:30,我们GDG-Xian 会在零一广场百怡咖啡中有一个活动,我正好有一个 Alembic Database Migration 的 话题 ,有时间的话,不妨来听一听。
嘻嘻frank
answered 11 years, 6 months ago