【问题标题】:every time with play run slick recreated database每次玩运行光滑重新创建的数据库
【发布时间】:2013-09-02 05:30:05
【问题描述】:
我正在使用 play 和 slick 。迁移到 slick 后
每当我用 play run 启动服务器时,每次 play 尝试删除并重新创建表时说
“数据库‘默认’需要进化!”
即使我的数据库和服务器没有变化。有什么办法可以配置这个,这样表就不会每次都被删除。
使用 play 2.1.0 和 https://github.com/freekh/play-slick
【问题讨论】:
标签:
playframework
playframework-2.0
slick
【解决方案1】:
如果你想禁用进化,你可以更新你的配置文件:
applyEvolutions.default=false
或者在命令行中添加:
play run -DapplyEvolutions.default=true
【解决方案2】:
这可能是创建一个conf/evolutions/default/1.sql 的巧妙方法,只有在它不存在并且没有通过配置evolutionplugin=false 禁用它时才会这样做。我猜你仍然在 Scala 代码中更改表映射,这意味着数据库发生了变化。
applyEvolutions.default=false 的解决方案,正如 Fredrik 已经说过的那样,或者维护您自己的进化文件,这样 play-slick 就不会生成一个。
【解决方案3】:
查看 /conf 是否有 /evolutions 目录包含数据库进化,并尝试删除此进化文件夹。