代码之家  ›  专栏  ›  技术社区  ›  Tim Post

Java的迁移

  •  83
  • Tim Post  · 技术社区  · 16 年前

    我使用Ruby on Rails和Java。我真的很喜欢在Rails项目中使用迁移。所以我想知道有没有像Java那样的迁移工具?如果没有这样的工具,使用迁移作为控制Java项目使用的数据库的工具是一个好主意吗?

    8 回复  |  直到 12 年前
        1
  •  8
  •   Brian Deterling    14 年前

    我使用了Hibernate的SchemaUpdate来执行与迁移相同的功能。这实际上比迁移更容易,因为每次启动应用程序时,它都会检查数据库结构并将其与映射同步,这样就不会有额外的rake:db:migrate步骤,而且应用程序永远不会与运行它的数据库不同步。Hibernate映射文件并不比Rails迁移复杂,因此即使您没有在应用程序中使用Hibernate,也可以利用它。缺点是,它的灵活性不如回滚、向下迁移、运行DML语句那么灵活。正如注释中指出的,它也不会删除表或列。作为休眠初始化过程的一部分,我运行一个单独的方法来手动执行这些操作。

    但我不明白为什么你不能使用Rails迁移——只要你不介意安装堆栈(Ruby、Rake、Rails),你就不必触摸你的应用程序。

        2
  •  86
  •   Axel Fontaine    12 年前

    对于一个 特征比较 之间

    • 滑行道
    • 里基
    • C5dB迁移
    • 部署数据库
    • 糠巴比妥
    • 迁移B
    • 移民4J
    • 数据库维护
    • 自动复印

    看一看 http://flywaydb.org

    这对你和其他人来说应该是一个很好的开始 为作业选择正确的工具

        3
  •  12
  •   Adam Monsen    15 年前

    Liquibase 是这个领域中另一个值得签出的项目。

        4
  •  10
  •   Kyle Burton    16 年前

    Grails 有一个 dbmigrate 一种实用程序,它是在Rails中的一个之后加上图案的。因为它是在Groovy中实现的,所以您应该能够从任何Java项目中使用它。

        5
  •  6
  •   jedihawk    15 年前

    我在研究同一个问题时偶然发现了这篇文章。我还没有得出任何关于最佳工具或方法的结论,但我遇到的一个工具到目前为止在其他答案中还没有提到 dbdeploy . 我想看看这些工具的任何比较。

    其他一些相关资源:马丁·福勒和普拉莫德·萨达拉格在 Evolutionary Database Design 和这本书 Refactoring Databases: Evolutionary Database Design 萨达莱和斯科特·安布勒。

        6
  •  6
  •   n00begon Priidu Neemre    12 年前

    Java也有两种独立的Rails类迁移实现:

    1)基于maven的迁移来自 Carbon Five

    2)基于蚂蚁的任务 Hashrocket (我个人的最爱)

    尽管这些包是专门为Maven和Ant编写的,但是通过一些工作,您可以使它们适应几乎任何东西。

        7
  •  4
  •   reacuna    15 年前

    Migrate4j 似乎是一个候选者,但是这个项目看起来还不够成熟,不能用于生产。

        8
  •  2
  •   Pascal Thivent    14 年前

    也有 DbMaintain 最初是在内部开发的 Unitils 但现在是一个专门的项目。我们目前正在使用它,并且非常满意(这并不意味着没有任何好的替代品)。我在我的 database+migration 书签(重点是支持Maven的工具)。