Je travaille avec Liquibase sous Linux, est-ce que quelqu'un sait comment exécuter le fichier datbasechangelog.xml à partir de l'invite Linux, étape par étape ? Et quelle est l'idée derrière databasechangelog et comment cela fonctionne ?
Réponse
Trop de publicités?Pour nos projets, nous avons mis en place des tâches de fourmis. Ainsi, par exemple, si vous voulez exécuter les migrations, le fichier ant peut ressembler à ce qui suit :
ant-migrations.xml
<project name="Migrations" basedir="." default="update-database">
<property file="./liquibasetasks.properties" />
<path id="master-classpath" description="Master classpath">
<fileset dir="..\lib">
<include name="*.jar" />
</fileset>
</path>
<target name="update-database">
<fail unless="db.changelog.file">db.changelog.file not set</fail>
<fail unless="database.url">database.url not set</fail>
<fail unless="database.username">database.username not set</fail>
<fail unless="database.password">database.password not set</fail>
<taskdef resource="liquibasetasks.properties">
<classpath refid="master-classpath"/>
</taskdef>
<updateDatabase
changeLogFile="${db.changelog.file}"
driver="${database.driver}"
url="${database.url}"
username="${database.username}"
password="${database.password}"
promptOnNonLocalDatabase="${prompt.user.if.not.local.database}"
dropFirst="false"
classpathref="master-classpath"
/>
</target></project>
Assurez-vous que le(s) fichier(s) jar de liquibase est (sont) référencé(s) dans l'élément classpath.
Le fichier de propriétés contient les références propres à votre environnement :
liquibasetasks.properties
db.changelog.file=YOUR_MIGRATION_FILE.xml
#################################
## DB Settings
#################################
database.driver=
database.username=
database.password=
database.url=
Ok, maintenant que nous avons mis en place et configuré la tâche ant avec tout cela sauvegardé, vous devriez être en mesure d'exécuter la migration en tapant ce qui suit à l'invite de commande :
linux>ant -f ant-migrations.xml update-database
J'espère que cela vous aidera !