我们有一个ASP.NET web应用程序,需要维护数据库创建和初始化脚本。
对于维护数据库创建和初始化脚本,是否有人们所知道的行业最佳实践。我能想到两种主要的方法。
此外,应该能够通过源代码管理跟踪脚本,即表顺序应该是可控的。
如果可能的话,还应该包括在相同或独立脚本中跟踪初始化数据的能力。
目前,我们从管理工作室生成脚本,但是表的顺序似乎是随机的。
解决方案自动化程度越高,效果越好。
发布于 2011-10-28 05:13:30
问题不是维护脚本,也不是维护数据库的“主”副本。真正的问题是升级现有的数据库。您可以在开发人员环境中进行修改,然后将其传播到测试环境,并最终推入生产环境。虽然在开发人员和测试环境阶段可以从头开始,但是在生产中您总是必须升级现有的部署。
根据我的经验,最佳实践是使用升级脚本。即使在一个部署的站点上,这种实践也是有用的,但是对于可能处于不同版本的多个位置,它变得非常宝贵。但是,即使有了一个操作站点,仍然可以重复测试升级(从当前版本的备份开始),保持源代码控制中的更改,具有良好的形式化和同行评审的更改过程(升级脚本)。升级脚本可以根据操作站点的特定需求定制,比如特别小心地处理一个大表,或者处理加密的数据,或者其他基于细节差异的工具忽略或忽略的任何一个细节。主要的缺点是脚本必须编写,这需要真正的tool知识(忘记您最喜欢的管理工具中的所有“设计人员”)。
发布于 2011-10-28 04:48:32
您可能需要查看RedGate SQL源代码管理。
发布于 2011-10-28 05:04:20
你在找Visual Studio数据库项目吗
我使用数据库项目存储所有数据库对象(表、视图、函数、键、触发器、跨模式索引),并在TFS中保持版本控制。您可以构建数据库以确保一切都是有效的。您可以部署到新数据库,也可以与现有数据库进行架构比较。
我还将所有引用和设置数据保存在部署后脚本中,这些脚本在部署后自动运行。
https://stackoverflow.com/questions/7925224
复制相似问题