如何让Liquibase基于参数替换值计算校验和?
问题描述
我的Spring配置YAML里有如下Liquibase参数结构:
spring: liquibase: parameters: remote: schema: name: common table: games_table: games
对应的Liquibase变更集定义如下:
<changeSet author="user1" id="create_virtual_tables" dbms="postgresql"> <sqlFile path="liquibase/sql/ddl/virtual_tables.sql"/> </changeSet>
SQL脚本用于在PostgreSQL中创建外部表,内容如下:
CREATE FOREIGN TABLE public.games ( id SERIAL PRIMARY KEY, title VARCHAR(255) NOT NULL, genre VARCHAR(100), release_date DATE, developer VARCHAR(255) ) SERVER remote_server OPTIONS (schema_name '${remote.schema.name}', table_name '${remote.table.games_table}');
我清楚Liquibase的校验和计算是基于脚本原始文本,而非参数替换后的实际值。现在需要实现:当配置里的参数值(比如把remote.table.games_table从games改成games_new)发生变化时,启动程序时Liquibase能直接抛出错误。之前试过preConditions和validCheckSum,但都不符合我的需求。
内容的提问来源于stack exchange,提问作者Digital Nomad
相关产品推荐
相关产品推荐

