Grails 数据库迁移插件 - sql 与 'bundled changes'
Grails db-migration plugin - sql vs 'bundled changes'
背景:
我有一个用 Grails 编写的 Web 应用程序后端,它与 MySQL 数据库通信。我正在使用 Grails 数据库迁移插件来控制数据库结构,updateOnStart 设置为 true(我很少使用插件的命令行界面)。
问题:
在变更集中使用 SQL 查询和 'bundled changes' 之间有什么实际区别吗?
示例:
有什么理由我应该例如喜欢:
addColumn(tableName: 'table_x'){
column(name: 'new_column', type: 'int', defaultValue: 0){
constraints(nullable: 'false')
}
}
超过
sql(sql: 'ALTER TABLE table_x ADD COLUMN new_column INT NOT NULL DEFAULT 0;')
?或者这两者完全可以互换?
这取决于 SQL 你的作者。只要您的写入可移植 SQL 就没关系,只有当您针对不支持您编写的 SQL 的不同类型的数据库时才重要。
背景: 我有一个用 Grails 编写的 Web 应用程序后端,它与 MySQL 数据库通信。我正在使用 Grails 数据库迁移插件来控制数据库结构,updateOnStart 设置为 true(我很少使用插件的命令行界面)。
问题: 在变更集中使用 SQL 查询和 'bundled changes' 之间有什么实际区别吗?
示例: 有什么理由我应该例如喜欢:
addColumn(tableName: 'table_x'){
column(name: 'new_column', type: 'int', defaultValue: 0){
constraints(nullable: 'false')
}
}
超过
sql(sql: 'ALTER TABLE table_x ADD COLUMN new_column INT NOT NULL DEFAULT 0;')
?或者这两者完全可以互换?
这取决于 SQL 你的作者。只要您的写入可移植 SQL 就没关系,只有当您针对不支持您编写的 SQL 的不同类型的数据库时才重要。