Play框架忽略了进化脚本

时间:2015-09-26 12:53:52

标签: sql postgresql scala playframework

我目前正在介绍SQL数据库的基础知识并在play框架中使用它们。我创建了postgres数据库并在application.conf

中成功配置了它
db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://database.example.com/playdb"
db.default.user=postgres
db.default.password=qwerty

我还在conf / evolutions / evolutions / default目录中创建了1.sql文件,并在那里写了相同的SQL代码来创建简单的表。问题是播放似乎忽略了这个文件的存在。当我运行我的服务器并连接到localhost时,我会被Play询问,我是否希望将我的脚本应用于我的数据库。不幸的是,我不是,而且唯一正在做的事情就是加载我的主页(1.sql中的CREATE TABLE没有执行,我也没有创建任何表)。我有什么想法吗?

2 个答案:

答案 0 :(得分:2)

确保build.sbt文件中有以下行

libraryDependencies += evolutions

答案 1 :(得分:0)

就我而言,evolution忽略了2.sql(和1.sql)。

要解决此问题,我必须从1.sql中删除这些注释:

#--- Created by Ebean DDL
# To stop Ebean DDL generation, remove this comment and start using Evolutions

并添加我自己的评论,例如:

# Initial version

另外,在VI中查看1.sql文件显示它包含 ^ M个必须删除的字符

在这两个步骤之后,evolution停止覆盖1.sql并最终使用提供的2.sql文件。

即使您不执行数据库更新,Evolution似乎也会覆盖1.sql,因此请确保您正在编辑原始版本。

我正在使用游戏2.4.1。