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

发布于 2024-10-13 06:07:17 字数 183 浏览 3 评论 0原文

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

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

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

As I release versions of software and branch versions for each release, how can I easily generate update/patch scripts for the versions? I can't open the database projects and compare them because they are named the same and visual studio doesn't like that.

The next idea I had was deploying lower version to a database and then generating a change script by opening up the next version of the software. This seems like it would be a bit tedious.

Also, how would one go about integrating this into a setup project instead of a manual process?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一枫情书 2024-10-20 06:07:17

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

我建议...

  1. 将版本标识符添加到某个表中的数据库架构中。
  2. 跟踪版本之间的所有数据库架构更改,例如,如果您使用 MySQL,则 Toad 将每次进行架构更改时都会提交存储库(例如 SVN),这使得记录更改变得更加容易。
  3. 当您部署新版本时,统计所有架构更改并将它们标记为从版本 Y 到版本 Z 的更改集。
  4. 当您的应用程序首次运行时(因此不是使用安装程序,而是使用应用程序本身),查找架构中的版本,并应用每个更新脚本,直到达到应用程序的版本。因此,如果应用程序运行并发现模式 X,它将运行脚本 Y,然后运行脚本 Z。

这是大多数应用程序的运行方式,例如 wordpress、blogengine.net;所有这些都以这种方式运行,在发布时,它们提供一个脚本来从头开始创建模式,另一个脚本用于从最后发布的版本更新它。

Even if you were using the new Entity Framework you still can't get Visual Studio etc to track changes in a database schema automatically for you, you'd have to track the changes between versions manually and apply them (usually when the upgraded app runs for the first time).

I would suggest...

  1. Adding a version identifier to your database schema in some table.
  2. Tracking all database schema changes between versions, if you use MySQL for example, then Toad will make a repository (SVN for example) commit every time you make a schema change, which makes logging changes easier.
  3. When you deploy a new version, tally up all your schema changes and mark them as the change set from version Y to version Z.
  4. When your app runs for first time (so not with the setup program but with the app itself), lookup the version in the schema, and apply each update script until you reach the version of the app. So if the app runs and discovers schema X, it'll run script Y and then script Z.

This is how most apps run, wordpress, blogengine.net for example; all run in this mannor, when releasing they provide one script to create the schema from scratch, and another to update it from the last released version.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文