使用长时间运行的数据库迁移脚本

时间:2012-07-05 23:31:49

标签: database-migration fluent-migrator

我正在尝试FluentMigrator,以最小的努力保持我的数据库架构最新。

对于我目前正在构建的版本,我需要运行一个数据库脚本来对大量现有数据行进行简单的更改(大约2%的21,000,000行需要更新)。

在单个事务中要更新的数据太多(事务日志已满,脚本中止),因此我使用WHILE循环遍历表,一次更新10,000行,每个批处理单独的transacticon。这是有效的,大约需要15分钟才能完成。

现在我已完成脚本,我正在尝试将其集成到FluentMigrator中。

FluentMigrator似乎在一个事务中运行单个批处理的所有迁移。

如何让FM在单独的交易中运行每次迁移? 我可以告诉FM不要使用特定迁移的交易吗?

1 个答案:

答案 0 :(得分:0)

目前无法做到这一点。

目前正在进行讨论,有些工作正在进行中。 请在此处查看:https://github.com/schambers/fluentmigrator/pull/178

但是你的用例肯定有助于推动正确的方向发展 欢迎您参加讨论!

也许有人会找到临时解决方法?