在命令行中运行Evolutions

cha*_*eon 9 play-slick playframework-2.4

这是我修改Play框架的第一天,我在进化方面遇到了困难.我正在使用Play 2.4.

我从上来的许多选择了一个示例应用程序activator ui,它使用play-slickplay-slick-evolutions用于数据库连接和演进.

我已经仔细阅读了文档,但我似乎找不到从命令行运行演变的方法.当我activator在bash上运行时,我会被抛入一个shell中,并且help没有提出任何关于运行evolution或浮油的信息.

我已经做了一段时间的PHP,所以我习惯于从命令行上/下运行它们.我可以从数据库客户端删除表,activator run这应该提示我运行演进,但我正在寻找正确的手动方式来执行此操作.我想这是可能的,因为它需要在部署时完成.

Itc*_*chy 13

据我所知,它们并非设计为手动运行.在开发过程中,Play会要求您运行它们: 播放evolutions脚本应用程序

在生产中,我通过使用参数启动我的服务器来触发演变-DapplyEvolutions.default=true.您可以将此(-D当然不包括)写入application.conf文件以始终运行它们.您也可以只使用向下或向上变阵用-DapplyUpEvolutions.default=true-DapplyDownEvolutions.default=true.

当然,总是可以选择手动复制您需要的脚本部分,并将其应用于您喜欢的数据库工具.但是,您需要通过手动更改表格来告诉Play您的操作play_evolutions.那么更简单的解决方案就是不使用Play Framework提供的演进机制.

  • @JonasAnso在我看来,这很可悲.:( (7认同)
  • 完全正确,Evolutions需要执行正在运行的应用程序,无法在不启动应用程序的情况下从命令行运行它们. (3认同)
  • 确实是@dotslash (3认同)