【问题标题】:Play Framework 2.3 how to reset database?Play Framework 2.3 如何重置数据库?
【发布时间】:2015-04-25 15:12:03
【问题描述】:

在 Play 2.3.x documentation on Evolutions 它说

然而,在开发模式下,简单地丢弃您的开发数据库并从头重新应用所有演变通常会更简单。

但它没有给出如何执行此操作的说明。我可以使用某种激活命令来执行此操作吗?如何重置和重新应用进化?

谢谢!

更新:我宁愿不必手动弄乱我的数据库,但似乎这是唯一的方法

【问题讨论】:

    标签: playframework playframework-2.3 playframework-evolutions


    【解决方案1】:

    如果您不关心数据库中的数据(确保您不关心),您可以使用 sql 命令删除数据库(例如“删除数据库名称”)。一旦你再次运行“play run”,它应该会自动从 sql 脚本重新创建你的表,如果你遵循了 play framework 标准,因为根据文档:

    “如果在 application.conf 中配置了数据库并且存在进化脚本,则会自动激活进化”

    【讨论】:

      【解决方案2】:

      我不认为有这样的激活命令可以重新应用所有的进化。

      一个演变包括两部分的起伏

      1. Ups 部分描述了所需的转换。

      2. 描述如何恢复它们的 Downs 部分。

        当您第一次应用进化时,应用了 Ups 部分,如果进一步通过实体更改架构。它将在 ebean 中重新应用进化。

      如果您想恢复创建一个新的 dotsql 文件,请说 2.sql,其中包含所有 drop 语句的 Ups 部分。

      由此

      然而,在开发模式下,简单地丢弃你的 开发数据库并从头重新应用所有演变。

      我认为他们的意思是通过您的数据库 gui 等手动删除所有数据库。

      同时检查Similar

      【讨论】:

      • 感谢您的链接。我宁愿不必从我的数据库中手动删除表,但似乎这是唯一的方法。
      • 删除数据库并重新创建它比删除所有表要容易得多。
      • @KJ50 在这种情况下,我更喜欢 JPA 而不是 Ebean。在 jpa 中,您可以选择在 persistence.xml 中创建或更新。您可以根据您的要求更改编码。如果您不想使用 jpa,您在我的回答中描述了选项 2.sql。我不知道您为什么或何时要创建,因为每次您直接或通过 Entity 在 dotsql 文件中更新它时,ebean 都会创建您的架构。每次都重新创建数据库不是建议性的
      • @singhakash 我宁愿坚持使用 Ebean 而不是切换到 JPA。我想你提到的选项 2 会起作用。
      猜你喜欢
      • 2015-05-13
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      相关资源
      最近更新 更多