在VSTS中的现有数据库上手动将数据库部署到SSDT

时间:2018-05-09 14:04:31

标签: database migration database-schema sql-server-data-tools

我们有一个Live数据库项目,我们目前仅通过手动部署进行更新。然而,作为我们流程改进计划的一部分,我们建议切换到SSDT,以便我们改进并在部署过程中引入一些自动化。

为了促进概念验证,我们已经配置了一个测试环境,我们可以在其中实现和测试SSDT部署到现有Live数据库的克隆或类似的表示,该数据库当前在Git仓库中维护VSTS。

然而,我确实对此有一些疑虑和疑问。

  1. 在不影响Live环境的情况下,为我们的SSDT部署克隆或重新创建Live数据库到测试环境的推荐方法是什么?
  2. 将Live数据库导入我们的SSDT项目,然后发布到测试环境会对Live环境产生任何不利影响,我们是否可以预期导入后两个数据库之间是否存在任何不一致?
  3. 如果我们的概念证明成功,我们是否需要将所有数据库资产迁移到新的SSDT项目,或者SSDT项目是否可以与我们现有的Live数据库项目并行运行?如何?
  4. 任何切换或迁移到SSDT会导致我们的项目团队停机或中断吗?
  5. 如果不需要将现有数据库资产迁移到新的SSDT项目,我们是否可以将SSDT功能集成到现有项目中。

1 个答案:

答案 0 :(得分:1)

让我们回答您的所有问题:

  1. 克隆是什么意思?复制结构还是数据?在任何情况下,您都需要导入架构。通过右键单击项目来创建新项目并导入架构。如果您还需要数据,那么最好的方法是备份/恢复。
  2. SSDT自然不适用于数据。它只有DDL。因此,当您同步结构时,性能效果取决于所做的更改。索引重新创建可能需要很长时间,但是表创建不会占用太多资源。再一次,如果你在谈论备份,那么你需要衡量它们对你的影响程度。
  3. SSDT是存储和开发代码的方式。它取决于你与否。我的观点是SSDT是SQL Server开发的最佳工具,但是正确设置它可能会成为一个挑战。
  4. 正如我已经说过的,一切都取决于变化。一些变化不会有停机时间,其他变化可能非常复杂。 SSDT只会生成SQL脚本,并且SSDT手动或自动运行没有区别。
  5. 不太清楚迁移是什么意思。 SSDT是您存储和开发代码的方式。任何SQL Server数据库都可以放到SSDT中(对于一些现有的数据库,你需要付出一些努力才能进入SSDT,但它确实可行)