我目前正在开发一个使用位于LAN内部的SQL Server 2008数据库的应用程序。我遇到了与管理数据库有关的两个问题:
目前,我在SQL服务器中有2个数据库,一个用于测试,一个用于生产,我在部署更改时在这两个数据库之间复制表和视图等。我假设有一种更好的方法来管理将测试数据库中的更改推送到生产数据库,有人能指出我在正确的方向吗?
我远程完成了大部分工作,因此我已将SQL Server 2008 Express安装到笔记本电脑上并在本地运行数据库的第3份副本。这是远程工作的最佳选择吗?我在这种情况下一直在寻找的解决方案是将我的测试数据库暴露给Web,并且我在远程开发时可以使用有限的用户。这可行/推荐吗?
答案 0 :(得分:1)
我发现在我的笔记本上使用我自己的SQL Server Developer Edition本地副本是整体开发工作的最佳方式;然后在服务器上单独的测试和生产数据库。我喜欢保留我的本地开发服务器,这样我就不会受到开发工作的连接的支配。
作为一项原则,我不会公开公开SQL服务器,因此通过VPN工作是我访问典型测试/生产服务器的唯一方法。如果我的开发服务器也在那里;例如,当我在不允许VPN传递的位置时,我经常无法开展工作。
至于更新生产/测试数据库;我总是在更改开发服务器时生成更改脚本,然后将它们组织起来,以便将它们应用于测试,然后应用于以后的生产服务器。您可以通过SQL Server Management Studio或Visual Studio生成这些脚本。
答案 1 :(得分:1)
可能最干净,最可重复的方法是对数据库代码和对象使用真正的构建过程。首先将所有数据库代码和对象放在源代码管理中。然后使用DBGHOST创建升级脚本以升级生产数据库。作为其中一部分,您可以创建输出,该输出将创建一个空的dev数据库,在使用DBGhost时可以轻松匹配任何给定的版本。我们已经使用了大约3年,并且不会做任何其他事情。在那里查看完整的步骤。非常物有所值。我说它值得花钱吗?