我正在使用 Scala play evolutions 并在 application.conf 中有这个
evolutionplugin=enabled
applyEvolutions.default=true
applyDownEvolutions.default=true
我也有这个 sql 脚本在一次进化中
ALTER TABLE `User` ADD `Level` INT(10) NOT NULL DEFAULT '1',
但是,当我在 PROD 模式下启动 Play2 时,我总是会收到此错误
Duplicate column name 'Level' [ERROR:1060, SQLSTATE:42S21]
当我在启动 app play_evolutions 行之前检查数据库时,相应脚本上的状态为“已应用”,但在启动后,它变为“applying_up”,看起来进化每次都在一遍又一遍地开始。我怎样才能只应用“新”进化而不是从一开始就应用每一个进化?现在它很痛苦,因为当我向表中添加新列时,我还需要使用“向下”脚本来首先删除该列,并使用“向上”脚本来添加该列,但这会导致该列上的所有数据也被删除生产数据库。我错过了进化的东西吗?(对我来说,“进化”应该只在上次结束时才继续,而不是每次都从头开始)。
谢谢