.net - 处理数据库模式中的更改

标签 .net sql windows database-migration

我正处于构建应用程序的初始阶段,该应用程序有望售出 1000 台 - 更有可能是数百台,但无论哪种方式都足以引起数据库架构更改的严重头痛。

我相当受限于 windows/.net/sql server 环境,因为我们的许多客户将自行托管我在他们的网络服务器中构建的应用程序,并且在他们的服务器上安装的额外位永远不会顺利进行,并且有结果总是有很多投诉/业务损失。所以 sqlalchemy 已经过时了,因为它在 python 中运行。

我想要的是一个可以让我在应用程序版本之间轻松迁移的工具。我发现了 migrator.net 并且以前用过它,但从未在生产中使用过,因为开发团队似乎每年只对其进行开发,而不是一个活跃的项目。

有哪些替代方法可用?

更新 我忘了提到我希望能够在持续集成环境中使用它,因此虽然 data dude 和 sql Compare 是很好的 GUI 工具,但我确实自动化了。

最佳答案

如果您使用 Visual Studio 2010 Ultimate/Premium Edition 或 Visual Studio Team/Database Edition 2008,您将在 Visual Studio 中找到所需的一切。

您可以比较两个数据库(例如,dev 和 prod)并生成用于修改数据的 SQL 脚本。您可以轻松地从比较中排除某些表或某些列。您还可以检查结果并从脚本的生成中排除一些条目。因此,我们可以轻松灵活地生成可用于部署数据库中的更改的脚本。您可以从结构上分别比较两个数据库的数据(架构比较)。只需进入“数据”菜单并选择“架构比较”或“数据比较”。您可以阅读http://msdn.microsoft.com/en-us/library/dd193250.aspxhttp://msdn.microsoft.com/en-us/library/dd193261.aspx了解它是如何工作的。因此,您可以使用 prod 中的数据刷新 dev 中的数据,或者生成将 prod 数据库修改为 dev 数据库的最新版本的脚本。

我开始在 Vinsual Studio Team Edition 2008 中使用此功能,并在 Visual Studio 2010 Ultimate 中继续使用它。这正是我所需要的。在某些情况下,我需要修改一些脚本,但 95% 的工作是由 Visual Studio 完成的。

如果您无法使用 VS2010 Ultimate 或 Premium,并且没有 VS2008 Team 或 Database Edition,我建议您查看 http://www.red-gate.com/ 的一些产品(如 http://www.red-gate.com/products/SQL_Compare/index.htm )具有关闭功能。

关于.net - 处理数据库模式中的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3698814/

相关文章:

c# - 如何在 .net 应用程序中使用基本的 http 授权和表单例份验证

c# - 在 DataGridView 组合框中设置默认值

c# - NancyFx 和单元测试 Response.AsFile(...) 因 NotFound 而失败

mysql - 选择两列中的单个字段(Mysql)

c++ - GlobalMemoryStatusEx() 给出的总虚拟内存为 127 TeraByte

c# - 何时需要在客户端计算机上安装 .NET 框架?

.net - Entity Framework 中的通用持久方法 - 插入或更新(如果存在)实体

sql - 在oracle上创建空间索引

windows - 在非管理员 Windows 上运行 OpenFOAM native 编译

mysql - 是否可以有一个始终等于另一个的 MYSQL 字段?