【发布时间】:2021-11-02 23:11:28
【问题描述】:
我们公司使用 Liquibase 来控制 SQL Server 数据库表、存储过程等的版本。到目前为止,我们所做的是将更改写入 SQL 文件,然后在 DbChangeLog.xml 文件中提及文件路径.例如,如果我有一个存储过程 X,并且我想对其进行一些更改,我将创建一个包含 ALTER PROCEDURE X... 的 SQL 文件。先前版本的存储过程X 也被写入另一个文件。然后在DbChangeLog.xml 中提到这些文件,如下所示:
<changeSet author="<author>" id="<id>">
<sqlFile endDelimiter="\nGO" path="ChangeSetScripts/alter_procedure_X.sql" relativeToChangelogFile="true" splitStatements="true" stripComments="false" />
<rollback>
<sqlFile path="ChangeSetScripts/alter_procedure_X_rollback.sql" />
</rollback>
</changeSet>
随着时间的推移,DbChangeLog.xml 文件不断增长,现在ChangeSetScripts/ 文件夹包含近 1500 个文件!我想知道是否有任何方法可以压缩对单个文件的所有更改并使用该文件,而不是像我们现在所做的那样维护大量文件。我可以想到这样的解决方案:从生成所有表、类型和存储过程的 SQL Server 导出脚本并使用该 SQL 文件。这是一个可以接受的解决方案,还是我应该继续使用任何最佳实践?
【问题讨论】:
标签: sql-server version-control liquibase