Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在游戏框架中跳过进化是否可能/安全_Java_Mysql_Spring_Playframework - Fatal编程技术网

Java 在游戏框架中跳过进化是否可能/安全

Java 在游戏框架中跳过进化是否可能/安全,java,mysql,spring,playframework,Java,Mysql,Spring,Playframework,不幸的是,我在禁用Play evolutions的情况下构建并安装了一个新的生产数据库,但现在我需要对数据库结构进行一些更改,并且刚刚意识到,当evolution脚本尝试创建已经存在的表时,我会收到“不一致状态”警告,因此我无法应用这些演变 我现在想知道,是否可以删除1.sql(包含所有表生成)而只保留2.sql(包含各种修改表)指令 我最初的想法肯定不是,但我想不出比在应用演进后停止生产服务器转储/重新插入更好的方法。如果我正确理解您的问题,您可以使用各种方法 一个不那么优雅的方法就是修改数

不幸的是,我在禁用Play evolutions的情况下构建并安装了一个新的生产数据库,但现在我需要对数据库结构进行一些更改,并且刚刚意识到,当evolution脚本尝试创建已经存在的表时,我会收到“不一致状态”警告,因此我无法应用这些演变

我现在想知道,是否可以删除1.sql(包含所有表生成)而只保留2.sql(包含各种修改表)指令


我最初的想法肯定不是,但我想不出比在应用演进后停止生产服务器转储/重新插入更好的方法。

如果我正确理解您的问题,您可以使用各种方法

  • 一个不那么优雅的方法就是修改数据库上的进化表。此表名为
    play\u evolutions
    。将不希望执行的条目设置为“已应用”状态。这样,当演化开始时,它将不会执行具有此措辞的查询

  • 另一种方法是在要创建的新查询中执行检查,即创建用于检查哪些表已经存在的查询,并避免创建不一致。但是,这是以在SQL文件中编写存储过程为前提的

如果您想了解更多细节,请报告一个用例,以便我们能够一起了解哪种方法是最好的