我正在使用 play 并使用 slick 。在迁移到 slick 之后,我每次启动服务器时都运行 play 尝试删除并重新创建表,说“数据库‘默认’需要进化!”
即使我的数据库和服务器没有变化。有什么方法可以配置它,以便每次都不会删除表。
使用 play 2.1.0 和https://github.com/freekh/play-slick
我正在使用 play 并使用 slick 。在迁移到 slick 之后,我每次启动服务器时都运行 play 尝试删除并重新创建表,说“数据库‘默认’需要进化!”
即使我的数据库和服务器没有变化。有什么方法可以配置它,以便每次都不会删除表。
使用 play 2.1.0 和https://github.com/freekh/play-slick
如果您想禁用进化,您可以使用以下命令更新配置文件:
applyEvolutions.default=false
或在命令行中添加:
play run -DapplyEvolutions.default=true
这可能是创建一个conf/evolutions/default/1.sql
它只有在它不存在并且没有被配置禁用的情况下才执行的操作evolutionplugin=false
。我猜您仍在更改 Scala 代码中的表映射,这意味着数据库发生了更改。
正如 Fredrik 已经说过的那样,解决方案是applyEvolutions.default=false
,或者维护你自己的进化文件,这样 play-slick 就不会生成一个。
查看 /conf 是否有 /evolutions 目录包含数据库进化,并尝试删除此进化文件夹。