传输从开发DB的变化到生产的DB
-
22-08-2019 - |
题
说我有一个网站,该网站在我的电脑上的本地托管的数据库(发展)和托管在其他数据库(用于生产)...即首先我做dev的分贝的变化,然后我做的修改到PROD DB。
什么是转让,我没有在本地数据库中,以托管数据库的变化的最佳方式?
如果它的事项中,我使用的MS SQL Server(2008)
解决方案
与Visual Studio和SQL Server来做到这一点,正确的方法是将数据库项目添加到Web应用程序的解决方案。该数据库项目应具有SQL文件,可以使用所有必要的表一起完全重建整个数据库的新服务器上,程序的用户和角色。
这样的话,它们被包括在对代码的所有其余部分以及源控制。
有一个更改在数据库项目中,我把适用的任何新的改建或加数据库后续版本的SQL文件子文件夹。
在文件中的SQL应适当地写着“如果存在”块,使得其可已更新的数据库无错误运行安全多次。
作为一项规则,你永远不应该直接做改动,在数据库中 - 而不是修改SQL脚本,在项目,并将其应用到数据库,以确保您的源代码(SQL文件)始终是最新的<。 / p>
其他提示
我迁移通过改变脚本由开发者编写的变化时,他们已经测试/验证他们的更改。 (该例外是移动大量数据。)所有脚本存储在源控制系统。并且可以通过数据库管理员进行验证。
它是手动的,有时费时,但有效的,安全的和controled过程。
数据库是太重要从dev的复制。
有工具来帮助创建/验证这些脚本。 请参见 http://www.red-gate.com/ 我已经用他们的工具来比较两个数据库创建脚本。 布赖恩
如果变化是小的,我有时用手使它们。对于较大的变化,我使用红门的SQL比较来产生更改脚本。这些都是手工验证和运行在QA环境一流,以确保它们不会破坏任何东西。对于大的变化,我们运行之前,使得无论在质量保证和生产变化的特殊备份。
我们曾经使用由Ron所提供的方法。这是有道理的,与数据库管理员的专业团队的一个大项目。但是,如果你没有一个专门的开发谁只为DB编写代码这个办法是时间和资源成本。
该方法使用展鹏数据库比较也并不好。 您仍然有做大量的手工操作,你可以跳过一些步骤错误即可。
它需要更好的东西。这就是为什么我们建立了“敏捷DB娱乐/导入/反向/导出工具” 的原因 该工具是免费的。
优点:你的开发人员使用任何首选工具来开发DEV DB。然后,他们运行DB RIRE,这让reverseengeniring DB(表,视图,STOR PROC等),以及出口数据转换成XML文件。 XML文件可以保持在任何代码库系统。
和所述第二步骤是运行DB RIRE一个更多的时间来生成XML文件,并在生产DB的结构和数据之间的差异的脚本。
当然,你可以根据需要让尽可能多的迭代。