我之前使用Grails
开发了一个应用程序。现在根据新要求,需要修改现有的domain classes
以及添加新类并更改/建立之间的新关系好。
现在新要求已经实施,我将部署到生产环境。但是,DBA希望脚本更改生产数据库DDL。在引导应用程序时,DBA不允许auto create / update
database schema
。
我知道如何导出DDL来创建表格。但该脚本将删除表,这意味着所有数据都将丢失。 但我不知道如何导出DDL进行DDL更新(没有删除表/重新创建表)。有人有好的建议吗?
答案 0 :(得分:0)
您不能指望现有数据按原样根据新数据库架构进行存储。
例如,您有一个表格示例,其中contactNumber
field
在您现有的nullable : true
中具有schema
约束,而new schema
此约束条件包含nullable : true
已更改为unique : true
& Domain classes
。
在这种情况下,数据库将无法保持现有数据的完整性或适应新模式。
要保留现有数据,您可能需要经历一个繁琐的过程,例如 -
database schema
。database schema
&部署新应用程序并让它创建script
。utility
或database backup
来处理&根据新的数据库模式存储来自utility
的数据。确保您编写的database schema
具有处理27
完成的修改(约束,字段添加,字段已移除)的功能