为数据库项目创建“更新脚本”?

时间:2011-01-21 17:53:27

标签: visual-studio-2010 database-project

当我为每个版本发布软件版本和分支版本时,如何轻松生成版本的更新/补丁脚本?我无法打开数据库项目并进行比较,因为它们的名称相同,而visual studio不喜欢它。

我的下一个想法是将较低版本部署到数据库,然后通过打开下一版本的软件生成更改脚本。这似乎有点单调乏味。

另外,如何将其集成到安装项目而不是手动过程?

1 个答案:

答案 0 :(得分:1)

即使您使用新的实体框架,您仍然无法让Visual Studio等自动跟踪数据库架构中的更改,您必须手动跟踪版本之间的更改并应用它们(通常在升级的应用程序第一次运行。)

我建议......

  1. 在某个表中为您的数据库架构添加版本标识符。
  2. 跟踪版本之间的所有数据库架构更改,例如,如果您使用MySQL,那么Toad将在每次进行架构更改时提交存储库(例如SVN),这使得日志记录更改更容易。
  3. 部署新版本时,请计算所有架构更改并将其标记为从版本Y到版本Z的更改集。
  4. 当您的应用首次运行时(不是使用安装程序,而是使用应用程序本身),请在架构中查找版本,然后应用每个更新脚本,直到达到应用版本。因此,如果应用程序运行并发现架构X,它将运行脚本Y,然后运行脚本Z。
  5. 这就是大多数应用程序的运行方式,例如wordpress,blogengine.net;所有这些都在这个mannor中运行,在发布时它们提供了一个脚本来从头开始创建模式,另一个脚本从上一个发布的版本中更新它。