Liquibase Docker Testing
Generate changeLog for database
docker run -v /mnt/c/Users/ktimoney/changelog:/liquibase/changelog liquibase/liquibase --driver=org.mariadb.jdbc.Driver --url="jdbc:mariadb://host.docker.internal:3306/policy" --changeLogFile=/liquibase/changelog/dbchangelog.mariadb.yaml --username=policy --password=****** generateChangeLog
Drop and re-create policy database/schema
MariaDB [mysql]> drop database policy;
Query OK, 76 rows affected (0.296 sec)
MariaDB [mysql]> CREATE DATABASE IF NOT EXISTS `policy` ;
Query OK, 1 row affected (0.001 sec)
Apply changeLog
docker run -v /mnt/c/Users/ktimoney/changelog:/liquibase/changelog liquibase/liquibase --driver=org.mariadb.jdbc.Driver --url="jdbc:mariadb://host.docker.internal:3306/policy" --changeLogFile=dbchangelog.mariadb.yaml --username=policy --password=****** update
Update persistemce.xml
Update :
models-dao/src/test/resources/META-INF/persistence.xml
models-pdp/src/test/resources/META-INF/persistence.xml
models-provider/src/test/resources/META-INF/persistence.xml
models-tosca/src/test/resources/META-INF/persistence.xml
change:
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
to
<property name="eclipselink.ddl-generation" value="create-or-extend-tables" />
Test Modules
Run mvn clean install -DUSE-MARIADB on
models-dao: passed
models-pdp: failed
models-provider: passed
models-tosca: failed
Some tests are now failing as tables are not being dropped and re-created so records remain from previous tests.
See MVN Testing Errors for details.
Docker Compose
A docker compose version of the liquibase can be used like so:
docker-compose.yaml
version: '2'
services:
liquibase:
image: liquibase/liquibase
container_name: liquibase
command: ['--driver=$DRIVER', '--url=$URL', '--changeLogFile=$CHANGELOG', '--username=$USERNAME', '--password=$PASSWORD', '$CMD']
volumes:
- /mnt/c/Users/ktimoney/changelog:/liquibase/changelog