J'ai créé un projet JHipster. Je voudrais exécuter les changesets de liquidibase manuellement. Par défaut, les changesets sont inclus dans le classpath. Le changelog est dans src/main/resources/config/liquibase/master.xml
, et les changesets sont dans src/main/resources/config/liquibase/changelog
.Comment définir le chemin de classe liquibase
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<include file="classpath:config/liquibase/changelog/00000000000000_initial_schema.xml" relativeToChangelogFile="false"/>
<!-- jhipster-needle-liquibase-add-changelog - JHipster will add liquibase changelogs here -->
<!-- jhipster-needle-liquibase-add-constraints-changelog - JHipster will add liquibase constraints changelogs here -->
</databaseChangeLog>
Lors de l'exécution mvn liquibase:update
, je reçois une erreur parce que les changesets ne sont pas dans le classpath même si le fichier existe:
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.5.3:update (default-cli) on project playground: Error setting up or running Liquibase: liquibase.exception.SetupException: classpath:config/liquibase/changelog/00000000000000_initial_schema.xml does not exist -> [Help 1]
J'essaie donc de courir à partir de la ligne de commande en réglant le chemin de classe.
liquibase --classpath=src/main/resources --classpath=postgresql-42.1.3.jar
--url=jdbc:postgresql://localhost:5432/playground
--driver=org.postgresql.Driver
--changeLogFile=src/main/resources/config/liquibase/master.xml
--username playground --password=***** update
avec la même erreur: Unexpected error running Liquibase: classpath:config/liquibase/changelog/00000000000000_initial_schema.xml does not exist
Une solution consiste à supprimer la référence classpath:
dans la inclure une partie mais je voudrais éviter d'éditer le fichier à chaque fois qu'un changeset est ajouté par jhipster lors de l'utilisation jhipster entity
ou jhipster import-jdl
.
Pouvez-vous définir deux fois le classpath? Je vois deux drapeaux '--classpath'. Notez également que cela a été changé hier et classpath sera supprimé dans les futures versions de JHipster https://github.com/jhipster/generator-jhipster/pull/6121 –
Je mets deux '--classpath' parce que je ne pouvais pas trouver le syntaxe pour un seul '--classpath'. J'ai essayé avec ';' séparateur, mais n'a pas fonctionné. Il semble supprimer 'classpath:' sera la solution future – Sydney