【问题标题】:How to use database evolutions in Production mode?如何在生产模式下使用数据库演化?
【发布时间】:2012-08-23 01:10:58
【问题描述】:

目前,我的进化有两种用途(在 Play!2 应用中):

  1. 它们用于定义数据库的结构
  2. 它们用于使用一些默认值填充数据库。

Downs 通常会破坏 Ups 所做的任何更改。我没有使用 prod 模式下的进化,但我知道它们是在应用启动时应用的。

这是否意味着更新应用程序会导致重新应用进化,从而导致我丢失所有数据?如果是这样,我该如何避免这种情况?

【问题讨论】:

  • “激活进化后,Play 将在 DEV 模式下的每个请求之前或在 PROD 模式下启动应用程序之前检查您的数据库模式状态。” 据我了解,只会应用新的进化在这种情况下,不是从头开始重新创建整个数据库。

标签: database playframework playframework-2.0 production-environment playframework-evolutions


【解决方案1】:

如果您在生产模式下启用 Evolutions,则不会执行脚本的 Downs 部分。为此,您需要通过删除 conf/evolutions/default/1.sql 的前 2 条注释行来禁用 Evolution 文件的自动生成:

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

# --- !Ups
...

您也可以查看这个问题了解更多详情:Play! framework - database issue with Evolutions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多