Grails 数据库迁移:将 xml/groovy diff 转换为 sql 脚本文件

Posted

技术标签:

【中文标题】Grails 数据库迁移:将 xml/groovy diff 转换为 sql 脚本文件【英文标题】:Grails Database Migration: Convert xml/groovy diff into sql script file 【发布时间】:2014-12-30 12:03:33 【问题描述】:

我正在为 Grails 使用数据库迁移插件。我只想知道是否有办法将 xml/groovy 输出差异文件转换为 sql 脚本文件,因为这是我可以在我正在处理的项目中的数据库中运行修改的唯一方法。

例如,我有这个 .groovy 差异文件:

databaseChangeLog = 

    changeSet(author: "nm (generated)", id: "1415018853093-1") 
        createTable(tableName: "configuration_variable") 
            column(autoIncrement: "true", name: "id", type: "bigint") 
                constraints(nullable: "false", primaryKey: "true", primaryKeyName: "configurationPK")
            

            column(name: "version", type: "bigint") 
                constraints(nullable: "false")
            

            column(name: "name", type: "varchar(255)") 
                constraints(nullable: "false")
            

            column(name: "value", type: "varchar(255)") 
                constraints(nullable: "false")
            
        
    

    changeSet(author: "nm (generated)", id: "1415018853093-2") 
        createIndex(indexName: "name_uniq_1415018853044", tableName: "configuration_variable", unique: "true") 
            column(name: "name")
        
    

【问题讨论】:

【参考方案1】:

查看插件的文档。您可能会发现使用dbm-update-sql 命令将为您提供手动执行数据源更改所需的 SQL 输出。

dbm-changelog-sync-sql 命令也可能对您有用。

【讨论】:

以上是关于Grails 数据库迁移:将 xml/groovy diff 转换为 sql 脚本文件的主要内容,如果未能解决你的问题,请参考以下文章

Grails 2.3 迁移脚本不会在集成测试期间运行

Grails 3 数据库迁移插件初始化错误

Grails数据库迁移-将插入值手动更改日志记录到表中的特定列

已部署服务器上的 Grails 数据库迁移

Grails 数据库迁移插件

Grails 3 数据库迁移问题