首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在重新部署ASP.NET核心MVC网站后,Azure SQL数据库列未更新

在重新部署ASP.NET核心MVC网站后,Azure SQL数据库列未更新
EN

Stack Overflow用户
提问于 2018-06-06 03:16:42
回答 2查看 734关注 0票数 1

我正在使用C#开发一个ASP.NET核心MVC web应用程序。我只将我的应用程序部署到Azure一次,并使用Azure SQL数据库来存储应用程序的数据。我对数据库进行了本地更改(向数据库中名为Logs的表中添加了一个名为LogType的额外列),并应用了迁移,一切在本地都运行得很好。我将我的应用程序重新部署到Azure,它成功了,没有任何错误。然而,当我浏览网站时,我一直收到Sql异常:

SqlException:无效的列名'LogType‘。

因此,我想知道如何应用迁移并更新Azure SQL数据库以反映我的本地更改?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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门户中执行此脚本。

代码语言:javascript
复制
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服务器/数据库来完成,右击表名并选择。然后,添加新列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50707435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档