3

目前,我的进化以两种方式使用(在 Play!2 应用程序中):

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

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

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

4

1 回答 1

4

如果您在生产模式下启用 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
...

您还可以查看此问题以了解更多详细信息:玩!框架 - Evolutions 的数据库问题

于 2012-08-28T14:02:51.297 回答