【问题标题】:"Database 'default' is in inconsistent state!" comes and goes“数据库‘默认’处于不一致状态!”来来去去
【发布时间】:2013-07-09 18:46:17
【问题描述】:

我的问题是部署服务器上的play数据库进化一次又一次处于不一致的状态。我不明白有什么问题。

  • 所有测试都运行良好(在内存中)
  • 我可以通过运行(在内存中)启动应用程序
  • 我删除了evolution sql-script,让它重新生成(通过点击浏览器的evolution trigger)
  • 我在 conf 文件中为 mysql 访问切换了必要的属性
  • 我使用play clean compile stage 开始构建
  • 我删除并创建了 mysql 数据库
  • 然后我使用 -DapplyEvolutions.default=true 启动应用程序

我经常得到这个错误:

[error] play - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sequence life_cycle_event_seq' at line 1 [ERROR:1064, SQLSTATE:42000]
Oops, cannot start the server.
@6epm5i5m6: Database 'default' is in inconsistent state!
    at play.api.db.evolutions.Evolutions$.checkEvolutionsState(Evolutions.scala:177)
    at play.api.db.evolutions.Evolutions$.applyScript(Evolutions.scala:275)
    at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1$$anonfun$apply$1.apply$mcV$sp(Evolutions.scala:446)
    at play.api.db.evolutions.EvolutionsPlugin.withLock(Evolutions.scala:483)
    at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:439)
    at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:437)
    at scala.collection.immutable.List.foreach(List.scala:309)
    at play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:437)
    at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:63)
    at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:63)
    at scala.collection.immutable.List.foreach(List.scala:309)
    at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:63)
    at play.api.Play$$anonfun$start$1.apply(Play.scala:63)
    at play.api.Play$$anonfun$start$1.apply(Play.scala:63)
    at play.utils.Threads$.withContextClassLoader(Threads.scala:18)
    at play.api.Play$.start(Play.scala:62)
    at play.core.StaticApplication.<init>(ApplicationProvider.scala:54)
    at play.core.server.NettyServer$.createServer(NettyServer.scala:228)
    at play.core.server.NettyServer$$anonfun$main$5.apply(NettyServer.scala:259)
    at play.core.server.NettyServer$$anonfun$main$5.apply(NettyServer.scala:258)
    at scala.Option.map(Option.scala:145)
    at play.core.server.NettyServer$.main(NettyServer.scala:258)
    at play.core.server.NettyServer.main(NettyServer.scala)

在玩了整个过程之后突然就可以了。

【问题讨论】:

  • 你能发布你用于进化的 sql 脚本吗?当您第一行说“在第 1 行 [ERROR:1064, SQLSTATE:42000] 附近 'sequence life_cycle_event_seq' 附近”时,可能有什么问题
  • sql 文件很大。文件中不存在这条语句sequence life_cycle_event_seq

标签: playframework playframework-2.1 playframework-evolutions


【解决方案1】:

您应该在将配置切换到 mysql 之后生成进化脚本。

生成的脚本依赖于 RDBMS。在启动play clean compile stage之前需要使用正确的数据库引擎创建它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    相关资源
    最近更新 更多