Oracle "Create or replace" change set is not registered in databasechangelog table


I was trying to search the forum but didn’t find a similar topic.
I’ve noticed on Liquibase 4.17.2 that changeset (sql file for Oracle) containing code for “create or replace procedure …” without option reRun is not registered in table databasechangelog. Other changesets from this file are registered as executed.
Is it ok ?

with regards

I’m not sure I fully understand the question, but I’ll try to respond.

A changeset, by default, is only executed one time against a particular schema/database. It doesn’t matter what sql is contained within that changeset.

If you want to use CREATE OR REPLACE syntax, and maintain the object over time in that changeset, then you need to add the “runOnChange=true” attribute to your changeset, so it will automatically execute every time you modify the changeset.

Thanx for Your answer, but the point is: the sql file contains few changesets (all pure oracle sql).
Let’s say:

–changeset author:1
insert into table

–changeset author:2
update table…

–changeset author:3
create or replace procedure

–changeset author:4
insert into table

no one of them was ever executed.

After update through liquibase, changesets:1,2,4 are registered in table databasechangelog, but changest: 3 is not registered is it some kind of error ?

with regards