|
|
1
2
对于小项目,我使用RedGate管理模式和数据迁移,取得了很多成功。在大多数情况下都很容易使用。 对于用于架构和数据更改的大型企业系统,通常将所有SQL脚本保存为文本文件并运行它们。我们还提供了一个回滚脚本,以便在迁移过程中出错时运行。在UAT服务器上运行此命令,然后在生产服务器上运行Test/staging/pre prod server。保存所有这些文件的副本以及它们的回滚脚本应该允许您从一个数据库的多个版本移动。 |
|
|
2
3
我用过的三件事是: 对于架构
红门的SQL比较和整个SQL工具带。他们已经非常努力地使这个东西你可以版本控制。在实践中,我发现对于数据库,您通常试图从版本时间线中的点A到点B。对于二进制文件,您通常只需删除点B中的任何内容(我知道这是一个过于简单化的过程,但通常是正确的)。 如果您的系统很小,而且可能会一直很小,那么xSQL是一个很好的起点: http://www.xsqlsoftware.com/LiteEdition.aspx 我不为这些人工作,也不认识为他们工作或从他们那里得到钱的人。告诉你我过去做过什么。 对于数据 红门有SQL数据比较。 但是,如果您想要“免费”的东西(或者包括在SQL Server中) BCP摘录的问题是它们的版本控制不是很好。我使用了一些技巧,比如在字符模式下提取并在提取查询中填充order by,以尝试按某种顺序提取行,使它们更适合版本控制。 |
|
|
3
2
首先,您必须认为场景之间的需求是不同的 很多 :
我可以继续讲更多的情节。关键是,每一个案例的要求都大不相同,没有一个“最先进的”能够回答所有这些问题。使用schema diff部署工具(如 vsdbcmd SQL Compare . 其他场景将更好地面对显式 versioning scripts . 另一个可能有这样的特定要求(例如0停机时间),每个升级都是一个独立的项目,必须专门定制。
但有一件事是很清楚的:如果你的商店威胁到开发数据库
*作为“源”,并使用管理工具对其进行更改,即
总是
少校
另一个需要解决的重要方法是从EF或LinqToSql等工具进行代码优先的模式建模。它可以很好地部署v1,但在随后的任何版本中都会失败。我强烈反对这些做法。 但总结一下,简单回答一下:就像今天一样,技术水平很差。 |
|
|
4
1
在红门,我们会根据您的需求和您需要的流程的正式程度,推荐两种方法之一。如果您有一个开发数据库,并且只想将更改推送到生产环境中,那么SQL Compare就是该作业的工具。使用架构快照可以实现一定级别的版本控制。 SQL Source Control . 这将开发数据库链接到Team Foundation Server或Subversion。 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 10 月前 |
|
|
Nebula Tech · 在SQL Server中搜索字符串中单词的多次出现 10 月前 |
|
Marc Guillot · 记录值时忽略冲突 11 月前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 11 月前 |
|
|
GH DevOps · 多对多关系中同类型的SQL Server关系表设计 11 月前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 11 月前 |