我目前正在介绍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没有执行,我也没有创建任何表)。我有什么想法吗?
答案 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。