在游戏 2 中重新生成进化脚本

Posted

技术标签:

【中文标题】在游戏 2 中重新生成进化脚本【英文标题】:Regenerate evolution scripts in play 2 【发布时间】:2012-05-29 21:25:10 【问题描述】:

我仍在开发 Play 2 上的应用程序的第一个版本。如何重新生成进化脚本?

【问题讨论】:

【参考方案1】:

免责声明它将破坏您现有的数据库并创建新数据库!

自动进化将在以下情况下自动再生:

您正在dev 模式下运行您的应用程序 在application.conf 你有这行not 评论:ebean.default="models.*" 你的进化文件夹中只有一个文件,它是1.sql 开头有这样的评论:

# --- Created by Ebean DDL

【讨论】:

我发现只有在执行“播放测试”时才会重新生成脚本。如果我“玩干净”或“玩编译”,它不会。你知道重新生成进化脚本需要什么命令吗? @angelokh - 抱歉,我之前没有找到您的评论:?可能你在这么长时间后找到了答案,但是,当然重新生成只能在dev 模式下工作【参考方案2】:

使用 play 2.4、Slick 3.0.3 和 postgres,放置在进化文件夹中的 *.sql 文件在 Heroku 中使用以下设置自动生成:

在 build.sbt 中:

  "com.typesafe.play" %% "play-slick" % "1.0.1",
  "com.typesafe.play" %% "play-slick-evolutions" % "1.0.1",
  "com.typesafe.slick" %% "slick" % "3.0.3",
  "org.postgresql" % "postgresql" % "9.4-1201-jdbc41",
  "org.slf4j" % "slf4j-nop" % "1.6.4",

在 application.conf 中:

slick.dbs.default.driver ="slick.driver.PostgresDriver$"
slick.dbs.default.db.dataSourceClass = "slick.jdbc.DatabaseUrlDataSource"
slick.dbs.default.db.properties.driver = "org.postgresql.Driver"

在 Procfile 中:

-Dplay.evolutions.db.default.autoApply = true

干杯

【讨论】:

以上是关于在游戏 2 中重新生成进化脚本的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的非静态游戏对象在场景重新加载后会在脚本中丢失其引用?

四则运算进化版设计思想

在 Play 中为 OneAppPerTest 中的每个测试重新创建数据库并进化

进程重新生成时,Upstart 脚本不执行预启动脚本

loadrunner脚本改坏了-重新生成脚本

Unity热更新技术整理