我正在使用C#开发一个ASP.NET核心MVC web应用程序。我只将我的应用程序部署到Azure一次,并使用Azure SQL数据库来存储应用程序的数据。我对数据库进行了本地更改(向数据库中名为Logs
的表中添加了一个名为LogType
的额外列),并应用了迁移,一切在本地都运行得很好。我将我的应用程序重新部署到Azure,它成功了,没有任何错误。然而,当我浏览网站时,我一直收到Sql异常:
SqlException:无效的列名'LogType‘。
因此,我想知道如何应用迁移并更新Azure SQL数据库以反映我的本地更改?
发布于 2018-06-06 06:27:39
理想情况下,有一个CI/CD管道用于传播更改(代码、数据库模式等)。上游环境(例如开发、测试、试运行、生产等),包括BVT测试,以防止破坏。
找到以下几个选项来传播此更改:
-选项1-
一种方法是通过SSMS (例如,SQL Server Management Studio,版本17.2 )连接到Azure SQL服务器/数据库,并运行如下例所示的T-SQL脚本(更改表名并调试打印),其中将LogType列添加到名为dbo.Customer的现有表中。
此外,通过导航到Azure SQL数据库>查询编辑器(预览)并运行脚本,也可以在Azure门户中执行此脚本。
IF EXISTS(SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.Customer') AND name='LogType')
BEGIN
PRINT 'Column LogType already exists on table dbo.Customer and it is configured properly.'
END
ELSE
BEGIN
PRINT 'Adding column LastName to table dbo.Customer...'
ALTER TABLE dbo.Customer
ADD LogType VARCHAR(100) NOT NULL
END
PRINT '--- DONE ---'
GO
-选项2-
另一个选项是手动将LogType列添加到表中,这可以通过使用SSMS连接到Azure SQL服务器/数据库来完成,右击表名并选择。然后,添加新列。
发布于 2018-06-06 06:22:19
https://stackoverflow.com/questions/50707435
复制相似问题