开发工具 偌大的 Java 圈为什么就没有 Rails 和 Django 这么好用的 migration?

hi2016 · 2016年02月06日 · 最后由 rasefon 回复于 2016年02月19日 · 5117 次阅读

本想发在 java 社区的,但是 java 社区可能很多人都没有 migration 的概念,以免鸡同鸭讲,就发在 ruby 社区了,想必会 rails 的都对 migration 不陌生。

java 的生态比 ruby 大的多,应该有更高级更方便的 migration 才对啊,可惜 java 界最号称强大的 migration 还是需要手写 sql 的 http://www.mybatis.org/migrations/ 看了一下演示视频,简直太原始了。

造成这种局面的原因是什么?

SQL 挺好的,要用某个数据特有的功能还是要写原生语句。

grails 有,使用的 groovy 实现的。 Java 圈子里,藐视没看到有。

不仅仅这个,缺太多东西啦!😢

JPA 有自动生成 ddl 的功能,算不算呢…

人家写 java 的有专职 dba

nutz 这个框架自带类似 migration 的功能,还可以在启动项目的时候进行 migrate

flyway 会是你的菜

写 Java?弄个百人团队先……

  • migration, 鸡肋,简单 DDL 还能 handle,复杂过程必须自己定制下,PG 环境大规模复杂业务更是如此。
  • Java 一般大团队,派个人去放哨即可。
  • Rack 系列如果上线后马上自己定制下 migration,必须是纯 sql,比如 PG 用个 HStore,Rails 里咋写都 hentai

migration 没有那么好用 到是感觉 hibernate 那一套好用

#9 楼 @michael hentai 是什么,migration 支持 HStore

SQL 圈子有自己的解决方案比如 Sqitch http://sqitch.org/

Java 项目的规模和分工化,不适合 Rails Migration。

#12 楼 @nouse http://sqitch.org/ Status, Revert, Log, Repeat 这几步倒是周全了。另,有生产实践吗?

#14 楼 @michael 生产环境没有用到,个人还是喜欢 Sequel 的 migration,比如你说到的 HStore,直接用 DB.extension :pg_hstore 就好了,而且不用写 rollback 也非常爽。 http://sequel.jeremyevans.net/rdoc/files/doc/postgresql_rdoc.html#label-PostgreSQL-specific+Database+Type+Support

个人觉得可能 java 更偏向于数据库自动同步,而不是手动执行 migrate 什么的。

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