当我启动应用程序时,我尝试创建一个postgresql过程。
Caused by: liquibase.exception.ValidationFailedException: Validation Failed:我试图集成的过程(实数中的函数)如下:
CREATE OR REPLACE FUNCTION schema_for_materialized_views.update_views() RETURNS VOID AS
$$
BEGIN
refresh materialized view schema_for_materialized_views.first_view WITH no data;
refresh materialized view schema_for_materialized_views.second_view WITH no data;
refresh materialized view schema_for_materialized_views.first_view;
refresh materialized view schema_for_materialized_views.second_view;
END;
$$
LANGUAGE plpgsql;我试着把它放到一个标签中,一个引用到一个外部文件中,然后放到一个内部包含这个文件的文件中。我不知道怎么写才能让它起作用。所以如果有人有建议..。。
编辑:到目前为止,我尝试的4种主要转换集:
<changeSet author="TS" id="add_function">
<createProcedure
replaceIfExists="true"
dbms="postgresql"
schemaName="schema_for_materialized_views"
path="db/changelog/update_results.sql"
procedureName="update_views">
</createProcedure>
</changeSet><changeSet author="TS" id="add_function">
<sql dbms="postgresql">
CREATE OR REPLACE FUNCTION schema_for_materialized_views.update_views() RETURNS VOID AS
$$
BEGIN
refresh materialized view schema_for_materialized_views.first_view WITH no data;
refresh materialized view schema_for_materialized_views.second_view WITH no data;
refresh materialized view schema_for_materialized_views.first_view;
refresh materialized view schema_for_materialized_views.second_view;
END;
$$
LANGUAGE plpgsql;
</sql>
</changeSet><changeSet author="TS" id="add_function">
<createProcedure
replaceIfExists="true"
dbms="postgresql"
schemaName="schema_for_materialized_views"
procedureName="update_views">
refresh materialized view schema_for_materialized_views.first_view WITH no data;
refresh materialized view schema_for_materialized_views.second_view WITH no data;
refresh materialized view schema_for_materialized_views.first_view;
refresh materialized view schema_for_materialized_views.second_view;
</createProcedure>
</changeSet><changeSet author="TS" id="add_function">
<createProcedure
replaceIfExists="true"
dbms="postgresql"
schemaName="schema_for_materialized_views"
procedureName="update_views">
CREATE OR REPLACE FUNCTION schema_for_materialized_views.update_views() RETURNS VOID AS
$$
BEGIN
refresh materialized view schema_for_materialized_views.first_view WITH no data;
refresh materialized view schema_for_materialized_views.second_view WITH no data;
refresh materialized view schema_for_materialized_views.first_view;
refresh materialized view schema_for_materialized_views.second_view;
END;
$$
LANGUAGE plpgsql;
</createProcedure>
</changeSet>发布于 2021-12-08 15:55:37
最后在IRL的帮助下找到了它:
replaceIfExists="true"
dbms="postgresql" 不能一起工作。
https://stackoverflow.com/questions/70272802
复制相似问题