Playframework 先前进化的行为改变

Playframework 先前进化的行为改变,playframework,Playframework,上下文:我有一个PlayFramework 2.5后端,MySQL db运行evolutions。我目前正在制作中运行evolution#23。 然而,在生产中重新安装之前的一个版本19时出现了一个错误,这使我将版本19更改为abble,以便在dev上运行所有版本。主要的更改是删除了一个外键 假设我有 db.autoApply=true db.autoApplyDowns=true 我认为应该将autoApplyDowns更改为false,但也不确定它将如何影响 问题:如果在生产中保存更改,会发

上下文:我有一个PlayFramework 2.5后端,MySQL db运行evolutions。我目前正在制作中运行evolution#23。 然而,在生产中重新安装之前的一个版本19时出现了一个错误,这使我将版本19更改为abble,以便在dev上运行所有版本。主要的更改是删除了一个外键

假设我有

db.autoApply=true

db.autoApplyDowns=true

我认为应该将autoApplyDowns更改为false,但也不确定它将如何影响


问题:如果在生产中保存更改,会发生什么情况?它是否会忽略#19,因为它已经应用了它?

autoApplyDowns只会影响在生产模式下运行,并决定是否自动应用向下演进。我鼓励您将此设置为
false

autoApply
-使升降自动应用于Dev,但仅在Prod中应用升降

这两种设置的默认值都是
false
,我个人更喜欢这种方式,因为如果脚本和DB模式的状态之间存在任何不同步,那么Play将报告问题,以便您可以手动修复它们-它会在应用程序启动时(在Prod中)或在第一次请求时(在Dev中)报告这些问题

最安全的选择是将两者都更改为
false
,丢弃您的开发数据库,并从头开始应用所有演进,作为对开发中任何问题的健全性检查。这对Prod来说是安全的,因为这意味着下次部署演进变更时只应用Ups。如果您当时有任何问题,Play将在更改数据库模式之前报告问题-然后您将有机会在生产数据库上手动运行一些SQL,以恢复同步或在考虑问题时退出发行版。

一个“演化更改”意味着,当我添加一个新的演化文件时,或者这也意味着它将试图修复已经执行但需要改变的进化?