Liquibase:如何禁用 FILENAME 列检查?

2024-03-25

对于我们的应用程序,我们使用 liquibase。我们需要从命令行(在生产中手动)运行数据库迁移,并在应用程序启动时自动运行数据库迁移(测试环境等)。

问题是 Liquibase 将整个文件名视为变更集身份的一部分,因此如果路径不同,它会尝试重新应用变更集。例如,在“完全限定路径”与 db-changelog 文件的“相对路径”的情况下。

如何禁用 FILENAME 列检查?


基于this http://forum.liquibase.org/topic/i-need-to-ignore-the-filename-in-the-processing-to-see-if-a-change-set-has-already-been-applied,其做法如下:

始终在databaseChangeLog 元素和每个changeSet 元素上使用逻辑文件路径属性。

例子:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog logicalFilePath="does-not-matter" xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">

    <changeSet logicalFilePath="path-independent" author="authorId" id="1">
        ...
    </changeSet>

</databaseChangeLog>

因此,所有变更集的 FILENAME 列将包含“路径无关”,并且检查将被省略。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Liquibase:如何禁用 FILENAME 列检查? 的相关文章

随机推荐