/ / Skrypty specyficzne dla Liquibase DB dla pojedynczego projektu - spring, postgresql, spring-boot, liquibase, h2db

Skrypty Liquibase DB dla pojedynczego projektu - wiosna, postgresql, spring-boot, liquibase, h2db

Mam projekt rozruchu wiosennego z postgresql asgłówny DB i H2 jako DB w pamięci do testowania. Dodałem procedurę PL / pgSQL, aby wykonać jakąś niestandardową logikę, a teraz moje testy przestają działać. Jak użytkownicy likibase zwykle rozwiązują takie przypadki?

moja procedura to:

CREATE OR REPLACE FUNCTION <name>() RETURNS trigger AS"
BEGIN
DELETE FROM gator_device
WHERE id = OLD....
RETURN NULL ;
END;"
LANGUAGE plpgsql;

CREATE TRIGGER <name>
AFTER DELETE ON <name>
FOR EACH ROW EXECUTE PROCEDURE <name>();

Odpowiedzi:

1 dla odpowiedzi № 1

Jak wspomniano w komentarzach do twojego pytania, musisz zaznaczyć zestaw zmian tworzący funkcję za pomocą atrybutu dbms="postgresql". Kiedy Liquibase decyduje, na które zestawy zmianzastosuj do bazy danych, może pominąć zestaw zmian, jeśli ten zestaw będzie działał tylko na niektórych typach baz danych. Aby być całkowicie wieloplatformowym, musisz napisać „równoważne” zestawy zmian, które działają na każdej z baz danych, które chcesz obsługiwać, i oznaczyć każdą z nich dbms obsługiwanymi przez każdy zestaw zmian.