我的Azure SQL数据库中有7,517,717条记录(在Azure V12服务器上,它位于P4定价层),这个表格相对较大。
当我创建表时,我忘了为属性定义MaxLength
,所以现在它的类型为nvarchar(max)
。
我想更改此内容,因此我创建了迁移(使用FluentAPI),如下所示:
public partial class FeedTitleMaxLength : DbMigration
{
public override void Up()
{
AlterColumn("dbo.Feed", "Title", c => c.String(maxLength: 100));
}
public override void Down()
{
AlterColumn("dbo.Feed", "Title", c => c.String());
}
}
我这样运行Update-Database
命令:
Update-Database -Verbose -ConnectionString "Data Source=serverUrl,1433;Database=dbName;User ID=myusername;Password=mypassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=3000;MultipleActiveResultSets=True;" -ConnectionProviderName "System.Data.SqlClient"
web.config
中的我的连接字符串看起来是一样的。而且我也定义了这样的超时:
this.Database.CommandTimeout = 3000;
但无论我做什么或尝试我在30/40秒后得到此错误:
超时已过期。操作完成之前经过的超时时间或服务器没有响应。尝试连接到路由目标时发生此故障。尝试连接到原始服务器时花费的持续时间是 - [Pre-Login] initialization = 97;握手= 110; [登录]初始化= 0;认证= 0; [登录后]完成= 32;
我有什么方法可以运行此迁移吗?还是一些解决方法?例如,我可以创建迁移,但在SQL中运行AlterColumn
命令,然后运行Update-Database
命令。这会不会搞乱?