Grails 数据库迁移 - 更改以前的迁移

     2023-03-14     302

关键词:

【中文标题】Grails 数据库迁移 - 更改以前的迁移【英文标题】:Grails database migration - changing previous migrations 【发布时间】:2017-05-26 16:01:33 【问题描述】:

不幸的是,我刚刚注意到我之前的一次迁移中的一个问题,我指定了 baseTableSchemaName,现在无法创建具有替代名称的数据库。 我认为没有人对如何更改这些然后清除生产中的校验和有任何建议。而以下;

grails dbm-clear-checksums

可以在 dev 中使用,对我来说,grails 没有安装在生产中。

有没有办法自动化这个和最坏的情况,你可以简单地更新 databasechangelog 表以将 MD5SUM 设置为 null 吗?

【问题讨论】:

【参考方案1】:

我不知道您的问题的所有细节,尤其是问题是需要修复多少个数据库更改日志记录。但我可以分享我通常对我的应用程序所做的经验(我使用 grails 2.5.5)。 例如,假设我们有很少的迁移被编辑并且校验和不匹配。我执行以下操作:

    在开发环境中创建测试数据库并将所有迁移与最新版本同步。因此,在开发数据库中,您将拥有正确的 md5sum 值。好消息是,这些总和与环境无关,仅依赖于迁移内容本身。 转到生产数据库并使用从开发数据库中获取的正确值手动更新记录。 迁移不应再存在校验和冲突。

【讨论】:

Tbh,我希望尝试一步解决此问题,而不是更新单个记录。我也使用 Grails 2.5.5。实际上,我只是继续测试了解决方案,我更新了所有数据库更改日志记录并设置 md5sum = null。这对我有用。你有什么理由不采用这种简单的方法来解决问题?无论如何都会在下次数据库迁移更新时计算新的校验和。 @dre > 你有什么理由不采用这种简单的方法来解决问题?它实际上并没有出现在我的脑海中。谢谢你的结果。下次遇到麻烦时,我会对其进行测试:)我确实相信您必须将解决方案发布为答案并将其标记为已接受的答案。你的解决方案比我的简单得多。 谢谢@Andrej。这不是我想要的,但无论如何我都会添加它,以防 hit 对其他人有帮助。【参考方案2】:

这是我后来采用的一个解决方案,它可能不像我希望的那样优雅,但可能会帮助处于类似情况的其他人。

只需更新所有 databasechangelog 记录并设置 md5sum = null。在下次数据库迁移更新时计算新的校验和。

【讨论】:

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

...9【问题描述】:以前在Grails2.2.4中,当运行集成测试时,数据库迁移插件会启动liquibase并读取我的changelog.xml文件并用我的数据填充内存数据库。然后我的集成测试将查询该数据,一切都很好。升 查看详情

数据库在更新时应用所有以前的迁移,而不仅仅是新的迁移

】数据库在更新时应用所有以前的迁移,而不仅仅是新的迁移【英文标题】:DatabaseappliesALLpreviousmigrationsonupdateandNOTjustthenewone【发布时间】:2016-07-2706:36:16【问题描述】:我正在开发一个网站,目前该网站既有生产数据库,也有... 查看详情

Grails 数据库迁移插件

】Grails数据库迁移插件【英文标题】:Grailsdatabasemigrationplugins【发布时间】:2011-01-0709:36:42【问题描述】:至少有两个Grails插件可以模拟Rails的数据库迁移功能:AutobaseLiquibase对于其中哪一个最好有共识,或者是否有另一个插件... 查看详情

实体框架代码优先迁移 - 我可以针对以前的迁移

...描述】:我正在使用带有CCNet的migration.exe来更新部署时的数据库,我想知道如果我决定回滚已发布的版本,是否有办法回滚该更改。我知道有一种方法可以定位原始版本:$InitialDataba 查看详情

在 grails 中迁移 mongodb 插件时发生异常

】在grails中迁移mongodb插件时发生异常【英文标题】:Exceptionoccurredinmigratingmongodbpluginingrails【发布时间】:2017-03-1706:36:05【问题描述】:我正在将我的grails项目从2.4.4迁移到3.2.0。所以我也将我的gorm-mongodb插件从3.0.2迁移到6.0.0。... 查看详情

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

】已部署服务器上的Grails数据库迁移【英文标题】:Grailsdatabasemigrationondeployedserver【发布时间】:2014-09-2301:19:32【问题描述】:大家好,我在使用grails数据库迁移插件时遇到问题/困惑。用于学习的资源-Grails数据库迁移插件官方... 查看详情

在 Grails 中进行数据库迁移的良好工作流程是啥?

】在Grails中进行数据库迁移的良好工作流程是啥?【英文标题】:WhatisagoodworkflowfordatabasemigrationinGrails?在Grails中进行数据库迁移的良好工作流程是什么?【发布时间】:2012-12-0822:30:29【问题描述】:我想使用database-migrationgrails插... 查看详情

grails4中的数据库迁移插件错误

】grails4中的数据库迁移插件错误【英文标题】:Databasemigrationpluginerroringrails4【发布时间】:2021-08-2406:35:24【问题描述】:我正在开发一个grails项目版本4每当我运行项目或执行gradlebuild或clean时我收到以下错误>Couldnotresolveallarti... 查看详情

启动后如何运行 Grails 数据库迁移

】启动后如何运行Grails数据库迁移【英文标题】:HowtorunGrailsDatabaseMigrationafterstartup【发布时间】:2015-12-2802:33:37【问题描述】:对于我的集成测试,我在bootstrap.groovy中加载了一个“种子”数据库。我也在开发过程中不时手动加... 查看详情

在应用程序的变更日志中包含 Grails 插件迁移

...开发一个模块化应用程序,我希望以一种方式组织我们的数据库迁移,使每个插件/模块都在其grails-app/migrations文件夹中托管自己的迁移。(而不是将所有 查看详情

Grails 3 数据库迁移问题

】Grails3数据库迁移问题【英文标题】:Grails3database-migrationissue【发布时间】:2015-12-2501:08:40【问题描述】:我将database-migration:2.0.0.RC1与Grails3.0.7一起使用。我在运行迁移时遇到问题。启动时出现以下错误:Causedby:java.lang.IllegalArg... 查看详情

Grails 数据库迁移变更日志问题

】Grails数据库迁移变更日志问题【英文标题】:Grailsdatabasemigrationchangelogwoes【发布时间】:2012-07-1014:33:16【问题描述】:我正在努力学习this教程。以下是我采取的步骤:1.)我首先创建我的空变更日志。在我运行这个命令之前,... 查看详情

Cloudbees 上的 Grails 数据库迁移和 Jenkins

】Cloudbees上的Grails数据库迁移和Jenkins【英文标题】:GrailsDatabaseMigrationandJenkinsonCloudbees【发布时间】:2012-01-0122:45:29【问题描述】:我希望每天晚上将我的测试系统自动部署到cloudbees的dev@cloud系统。现在的问题是我在grails上使用... 查看详情

如何使用 Grails 的数据库迁移插件的 Groovy DSL 修改列?

】如何使用Grails的数据库迁移插件的GroovyDSL修改列?【英文标题】:HowdoImodifyacolumnusingGrails\'databasemigrationplugin\'sGroovyDSL?【发布时间】:2011-09-0706:30:39【问题描述】:您能给我一个使用modifyDataType方法的常规变更集的示例吗?我... 查看详情

Grails 数据库迁移插件问题

】Grails数据库迁移插件问题【英文标题】:GrailsDatabaseMigrationPluginIssues【发布时间】:2012-05-2023:53:15【问题描述】:当我使用GrailsDatabaseMigrationPlugin并运行dbm-gorm-diff(例如,在安装SpringSecurityFacebook插件之后)时,我遇到了以下问... 查看详情

Grails 数据库迁移插件 updateOnStart 不起作用

】Grails数据库迁移插件updateOnStart不起作用【英文标题】:GrailsdatabasemigrationpluginupdateOnStartisnotworking【发布时间】:2014-05-1901:21:31【问题描述】:我需要一些帮助。如文档所述,我已配置数据库迁移插件:grails.plugin.databasemigration.... 查看详情

将 Grails 升级到 Grails 数据库迁移文件的 2.5.0 时出现 Class Not Found 错误

】将Grails升级到Grails数据库迁移文件的2.5.0时出现ClassNotFound错误【英文标题】:ClassNotFounderrorswhenupgradinggrailsto2.5.0forGrailsdatabasemigrationsfiles【发布时间】:2015-07-0916:19:36【问题描述】:我正在尝试将Grails应用程序从2.4.3升级到2.5.0... 查看详情

Grails 数据库迁移插件静默无法添加非空约束

】Grails数据库迁移插件静默无法添加非空约束【英文标题】:GrailsDatabaseMigrationpluginsilentlyfailstoaddnotnullconstraint【发布时间】:2012-06-3005:42:46【问题描述】:我正在尝试使用thissite作为参考来熟悉GrailsDatabaseMigrationPlugin。尝试添加... 查看详情