我正在使用游戏框架,想知道进化中的问题。更改模型后(例如添加字段),我准备了适当的sql脚本(用于UP和DOWN),例如3.sql(假设我已经有2个Evolution脚本)并放在相关文件夹中。
但是剧本向我显示了此消息:
数据库“默认”需要发展!
#!!!警告!该脚本包含可能发生的DOWNS演变破坏性的
#--- Rev:2,Downs-3ee3d8e
ALTER TABLE my_table DROP COLUMN低优先级;
#--- Rev:1,Downs-4f92dc6
[一个删除所有表格的长脚本!]
#--- Rev:1,Ups-5501951
[[创建表的长脚本]#--- Rev:2,Ups-3ee3d8e
ALTER TABLE my_tableADD COLUMN low_priority tinyint(1)默认0不为null;
#--- Rev:3,Ups-397ada5 ALTER TABLE my_table CHANGE COLUMNlow_priority lowpriority TINYINT(1)NOT NULL缺省'0';
为什么播放(实际上是其ORM:EBean)的行为如此?它应该只运行3.sql(最新的演变脚本)的“ UP”,而不回滚历史记录!
P.S。我正在谈论我的开发人员实例(因为PROD中没有发生上述情况)。但是由于某些原因,我必须在自己的开发数据库中保存一些繁重的数据,并且每次真正都要花时间进行“备份和还原”。
我确定了为什么会这样。据此link:
在游戏2.2中,从头到尾检查不同的演变:1.sql是针对db中的Evolution 1进行检查的,然后针对2、3进行检查,依此类推。如果某个对不同,则所有从不同的进化都需要降级和升级。在以前的游戏进化版本中是从最后一个到第一个相等的,所以如果相等,未检查其他演变。
在这两个变化之后,戏剧发现了不同的第一个进化空格,并要求重新应用它们。