玩迁移替代品

时间:2012-08-17 09:48:41

标签: scala playframework migration squeryl

我即将开始一个将使用Play的新项目! 2 Scala的框架,可能使用Squeryl作为ORM(但是如果它及时准备就可以Slick也可以。)

现在,玩!具有使用迁移升级数据库的功能。不幸的是,这些迁移是用SQL编写的。这不仅带来不便(我希望能够在Scala中编写迁移),但有两个问题

  • 首先,我需要自己编写迁移。我习惯于South,它能够通过查看我的模型的当前和以前的定义来推断模式迁移;
  • 第二,处理数据迁移将非常麻烦。可能需要以编程方式更改数据,这在普通SQL中甚至可能无法实现。

所以,我正在寻找另一种选择。我无法为任何会自动生成模式迁移的Scala ORM找到任何迁移工具,有没有?

我能找到的最好的工具是Scala migrations。有没有办法让玩!自动使用它代替自己的迁移工具?

2 个答案:

答案 0 :(得分:6)

另一种选择是Flyway,但它无法解决您的集成问题。

为此,您可以使用标准Play来实现插件!进化,您可以使用Global object在应用程序启动时开始迁移。

答案 1 :(得分:5)

我建议liquibase。 Liquibase是一个独立于数据库的开源库,用于跟踪,管理和应用数据库更改。它建立在一个简单的前提上:所有数据库更改都以人类可读但可跟踪的形式存储,并检入源代码控制。 Liquibase可用于Java和Scala。 Liquibase的优点在于,您可以使用XML,SQL或两者的组合来满足数据库迁移需求。它易于设置和使用,并且具有非常广泛的文档。