如何将SQL Server数据库发布到Azure以更新现有数据库

时间:2014-05-08 02:17:36

标签: sql-server azure deployment

我通过Management Studio将本地计算机上的SQL Server数据库发布到Azure。

假设我在Azure" California"上命名数据库。我第一次这样做是好的。

然后我在本地数据库上进行了更改,添加了列,添加数据等。然后我想再次将此数据库部署到Azure。

但是现在管理工作室不让我这么做。它说数据库"加利福尼亚"已经存在于Azure上。

我可以通过删除现有的" California"来解决这个问题。首先在Azure上,然后再次部署。但这似乎不正确......每次我在本地进行数据库更改时,我需要在部署之前删除Azure上的那个?

有谁知道如何解决这个问题?

4 个答案:

答案 0 :(得分:1)

最好的方法是在Visual Studio中创建数据库项目以维护数据库模式,然后可以进行数据库比较以创建脚本以在Azure上更新数据库。

http://weblogs.asp.net/gunnarpeipman/archive/2013/01/28/using-visual-studio-database-projects-in-real-life.aspx

RedGate Schema Compare也会做类似的事情。

答案 1 :(得分:1)

我知道问题被问到已经有一段时间了,但是,没有接受答案。因此,为了帮助任何来这里遇到类似问题的人,以下链接描述了许多方法。

我更喜欢从SQL Management Studio部署SqlDb

http://azure.microsoft.com/en-us/documentation/articles/sql-database-deploy/

  

如何:部署到SQL数据库   在Management Studio中,连接到具有要迁移的数据库的本地SQL Server实例。

     

1)右键单击数据库 - >单击任务,然后单击“将数据库部署到SQL Azure”。

     

2)在“部署设置”中,输入数据库的名称。

     

3)单击“连接”。

     

4)在服务器名称中,输入10个字符的服务器名称,然后输入.database.windows.net。

     

5)在“身份验证”中,选择“SQL Server身份验证”。

     

6)输入在创建SQL数据库逻辑服务器时配置的管理员登录名和密码。

     

7)点击选项。

     

8)在“连接属性”的“连接到数据库”中,键入master。

     

9)单击“连接”。此步骤结束连接规范并将您带回向导。

     

10)单击Next并单击Finish运行向导。

答案 2 :(得分:0)

如果您使用的是SQL 2012,则可以导出数据层应用程序(bacpac)文件,然后在登录SQL Azure实例时导入该文件。

答案 3 :(得分:0)

更新2020年1月

(我假设问题是在Azure上更新架构,而不是更新数据)

如果您使用Code First创建数据库。那真的很简单。

假设您的连接字符串指向本地数据库(您要更新到Azure的数据库)

  1. 对实体进行更改
  2. 为更改的人(添加迁移等)创建新的迁移
  3. 将迁移更新到本地数据库。
  4. 现在只需更改连接字符串以指向您的Azure数据库
  5. 再次更新迁移,现在将更新到Azure数据库

Voila!这么简单