Comment puis-je créer des déclencheurs pour un postgreSQL db à l'aide de liquibase?
Je suis en utilisant le dropwizrd-migrations module pour liquibase db refactoring. Voir le guide ici: http://dropwizard.codahale.com/manual/migrations/
Quand je le lance
java-jar my_project.jar db migrer my_project.yml
J'obtiens l'erreur suivante:
ERREUR [2013-09-11 20:53:43,089] liquibase: Changement des migrations.xml::11::m'a échoué. Erreur: Erreur d'exécution SQL CREATE or replace TRIGGER add_current_date_to_my_table AVANT la mise à JOUR SUR ma_table POUR CHAQUE LIGNE EXÉCUTER la PROCÉDURE change_update_time();: ERREUR: erreur de syntaxe sur ou près de "DÉCLENCHER"
Position: 19
Voici quelques révisions de mon migrations.xml fichier:
<changeSet id="1" author="me">
<createProcedure>
CREATE OR REPLACE FUNCTION change_update_time() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.updated_at := CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$;
</createProcedure>
<rollback>
DROP FUNCTION change_update_time();
</rollback>
</changeSet>
<changeSet id="2" author="me">
<preConditions>
<not>
<tableExists tableName="my_table"/>
</not>
</preConditions>
<createTable tableName="my_table">
<column name="_id" type="integer" defaultValue="0">
<constraints nullable="false"/>
</column>
<column name="updated_at" type="timestamp without time zone" defaultValue="now()">
<constraints nullable="false"/>
</column>
</createTable>
</changeSet>
<changeSet id="3" author="me">
<sql splitStatements="false">
CREATE OR REPLACE TRIGGER add_current_date_to_my_table BEFORE UPDATE ON my_table FOR EACH ROW EXECUTE PROCEDURE change_update_time();
</sql>
<rollback>
DROP TRIGGER add_current_date_to_my_table ON my_table;
</rollback>
</changeSet>
Est-il possible que je peux créer le déclencheur add_current_date_to_my_table? Est-ce redondant avec la "les RETOURS de déclenchement" de la création de la fonction?
DROP TRIGGER IF EXISTS...
. De toute façon. Essayez de créer le déclencher manuellement d'abord et assurez-vous qu'il fonctionne. Liquibase sera juste exécuter le SQL.Merci, cela a fonctionné.
OriginalL'auteur Ann Kilzer | 2013-09-11
Vous devez vous connecter pour publier un commentaire.
La solution est:
H/T Jens.
OriginalL'auteur Ann Kilzer