我很想知道在Web应用程序(ASP.NET,SQL Server 2008)中更改生产数据库和源代码的好方法。
更多细节,我们在本地机器上开发,然后我们需要将代码和数据库更改转移到生产(非常标准的故事)。
目前我们在晚上进行,直接从生产服务器上的管理工作室更改数据库,然后只覆盖现有的asp.net代码(复制/过去)。
答案 0 :(得分:1)
您在谈论发布管理。你问的是一个很大的主题,有很多不同的答案。对您而言,最好的解决方案不是我们可以告诉您的。有需要考虑的权衡因素。
例如,您所描述的是一个非常基本的发布管理流程,被认为是一个“不成熟”的流程....它没有考虑回滚计划,版本控制,关注点分离,正确测试或“成熟”版本管理流程涉及的其他一百个因素中的任何一个。
成熟的过程非常好,但如果你没有资源,那就不可行了。
为了达到目的,我不认为你的问题可以在这里完全回答。我建议开始研究“变更管理”,“发布管理”,“应用程序生命周期管理”和“应用程序开发生命周期”。我会在一分钟内给你一些好的启动链接。
但是,只是预警,你会问一个问题,这个问题会以你可能没有考虑过的方式打开你的眼睛和你的世界。有些事情需要考虑自动化构建,为你做的工具(高价,免费,以及介于两者之间的所有内容)
http://en.wikipedia.org/wiki/Release_management
http://en.wikipedia.org/wiki/Application_lifecycle_management
您可以在此处找到您所询问的一些简单选项: http://msdn.microsoft.com/en-us/library/7hd4c0x3(VS.80).aspx
此外,由于您在谈到源代码而未提及您正在使用的源控件时,我需要说...如果您尚未使用源代码控制,则需要。一旦你开始使用它,你会想知道没有它你是如何生活的。
答案 1 :(得分:1)
取决于它是第一次部署新应用还是应用更新。
对于小更新,请将所有数据库更改记录为sql脚本。您必须严格执行所有对开发的更改都应用为sql脚本。将脚本放在源代码管理中。通过在生产环境中运行脚本来部署更新。
对于新应用,您可能拥有数千个脚本。您无法单独运行它们。将它们合并为主脚本需要花费太多时间。 (尽管您仍希望将每个脚本检查到源代码管理中)。在这种情况下,您将在开发中达到里程碑,然后冻结开发数据库,并将其声明为基线。使用数据库工具生成主脚本。通过运行此脚本来部署生产。手动为查找表创建数据脚本,使其与垃圾开发数据分开。
避免数据库副本。避免通过GUI手动更改。脚本就是这样。如何收集脚本,合并到主脚本,生成脚本等是另一回事。