玩!:Slick的DDL取代Evolutions吗?

时间:2014-01-28 11:35:41

标签: scala playframework slick

这可能是一个愚蠢的问题,但我是Play的新手! &安培;油滑。在使用Slick的table.ddl.create时,我注意到它没有创建进化但应用程序仍然有效。

这会取代进化吗?我可以在生产中使用它吗?我应该吗?

提前致谢。

2 个答案:

答案 0 :(得分:21)

Slick和Slick DDL插件都只能生成代码来创建或删除您的架构,而不是进化它。所以你仍然需要Play evolutions或类似的东西来修改现有的架构。在Slick团队中,我们正在努力实现迁移解决方案(优先级较低)。许多部件已经存在,但还没有正确集成。 @ nafg的架构操作DSL:https://github.com/nafg/slick-migration-api和我一岁的数据库版本管理工具原型:https://github.com/cvogt/migrations/。后者的代码生成部分已经成为Slick 2.0。正确地集成所有这些将为我们提供全面的类型安全数据库迁移脚本解决方案。

答案 1 :(得分:4)

Slick能够为您定义的表生成DDL,它不包含可以进行演化的逻辑。

另一方面,播放光滑插件包含一个SlickDDLPlugin,当您以非生产模式运行应用程序时,它将为您生成并运行DDL演进(例如,播放运行)它还会在您的conf /中转储这些演变进化目录。

处理进化的来源: https://github.com/freekh/play-slick/blob/master/src/main/scala/play/api/db/slick/plugin/SlickPlugin.scala