soc*_*ket 11 java web-development-server playframework-2.0
我正在玩Play!框架2.0,我陷入了涉及数据库的恼人问题.
假设我有一个User(延伸Model它具有一些属性()类first_name,last_name,email,password等).
在某些时候,我想添加一个新属性,让我们说last_ip(它并不重要).所以,我将该属性添加到User类中,编译并运行.
问题是:我得到关于数据库更改的红色警报(显然),要求我按"应用更改"(如果我没记错的话).那很好但是!所有数据库记录都被删除了!
总结:我想要一个新的领域,但我不想丢失我已经添加到数据库的所有记录.这可能吗?
nde*_*rge 18
首先,您需要通过删除前两条注释行来禁用Evolution文件的自动生成conf/evolutions/default/1.sql:
# --- Created by Ebean DDL
# To stop Ebean DDL generation, remove this comment and start using Evolutions
# --- !Ups
...
Run Code Online (Sandbox Code Playgroud)
然后,您需要创建第二个文件,该文件conf/evolutions/default/2.sql在数据库模式中包含您的更新,其中包含Ups和Downs部分:
# --- !Ups
ALTER TABLE USER ADD COLUMN last_ip varchar(30) DEFAULT NULL;
# --- !Downs
ALTER TABLE USER DELETE COLUMN last_ip;
Run Code Online (Sandbox Code Playgroud)