entity-framework - 实体框架的大迁移文件导致无法将更改发布到实时服务器
问题描述
经过我在开发过程中进行的一些更改,其中还包括一些数据库迁移。当我尝试将它们发布到生产服务器时,它会引发以下错误。
由于“ACTIVE_TRANSACTION”,数据库“XXXX”的事务日志已满。该语句已终止。
我尝试将我的开发环境指向生产数据库并运行Update-Database -Verbose -TargetMigration PendingMigration_2
,结果相同,但这次我知道导致故障的罪魁祸首迁移。
它只是需要在现有表中添加的列数。
public partial class fields_added_for_UKAS_calcert : DbMigration
{
public override void Up()
{
AddColumn("dbo.Asset_Calcert", "UKAS_readings_taken_status", c => c.Int(nullable: false, defaultValue: 0));
AddColumn("dbo.Asset_Calcert", "weight_class_m1_1", c => c.Boolean(nullable: false));
AddColumn("dbo.Asset_Calcert", "weight_class_m1_2", c => c.Boolean(nullable: false));
AddColumn("dbo.Asset_Calcert", "weight_class_e2", c => c.Boolean(nullable: false));
AddColumn("dbo.Asset_Calcert", "weight_class_f1", c => c.Boolean(nullable: false));
AddColumn("dbo.Asset_Calcert", "make", c => c.String());
AddColumn("dbo.Asset_Calcert", "device_range", c => c.Int(nullable: false, defaultValue: 0));
.
.
.
}
我的限制是这个 WebApp 部署在 GoDaddy 上的共享服务器上。我无法更改数据库Transaction log size
,也无法更改Recovery Mode
数据库。
是否有可能将这种巨大的迁移分解成目标服务器可以接受的更小的块。或者任何解决方案都会有所帮助。谢谢。
解决方案
如果您的意思是中断迁移,是 {x} 每个迁移添加列,然后通过添加 {x} 列构建迁移,然后再次添加 {x} 列然后构建迁移,然后直到完成。
public partial class fields_added_for_UKAS_calcert_part1 : DbMigration
{
public override void Up()
{
AddColumn("dbo.Asset_Calcert", "UKAS_readings_taken_status", c => c.Int(nullable: false, defaultValue: 0));
AddColumn("dbo.Asset_Calcert", "weight_class_m1_1", c => c.Boolean(nullable: false));
}
public partial class fields_added_for_UKAS_calcert_part2 : DbMigration
{
public override void Up()
{
AddColumn("dbo.Asset_Calcert", "weight_class_m1_2", c => c.Boolean(nullable: false));
AddColumn("dbo.Asset_Calcert", "weight_class_e2", c => c.Boolean(nullable: false));
}
推荐阅读
- r - 用 R 修改列表中的数据框
- ios - 在 IOS 12.1 上使用 WIFI 时我的应用程序停止
- r - 如何在 ggplot 中使用变量度量(误差线)?
- javascript - JavaScript 回调返回结果,但函数变量未定义
- r - 使用 r 中 dplyr 中的 mutate_all() 将 df 中的每一列除以其他列
- javascript - 如何在返回值之前完全解决 axios/fetch call/promise?
- cassandra - Cassandra 数据建模 IoT 最佳实践
- android - Java:数独拼图生成无法正常工作
- pytest - 使用 tox 运行时,如何使 pytest 测试可以访问测试数据文件?
- javascript - 渲染上的意外令牌反应