R2DBC Liquibase Spring Boot starter. This repository demonstrates Spring Boot R2DBC MySQL support
Simple databaseClient use: SELECT 1
query with local mysql in docker.
Check v0-simple-database-client-select-with-mysql-in-docker
tag for details
Database migration using simple schema.sql and data.sql init scripts. Check v1-database-migrations-using-SqlInitializationProperties tag for details
More advanced database migration using custom R2DBC Liquibase migration tool Spring Boot starter. Check v2-database-migrations-using-custom-r2dbc-liquibase-spring-boot-starter tag for details
Use TestContainers to simplify development workflow. Check v3-add-test-containers-support tag for details
Test:
/mvnw
Run for integration test:
if [[ "" != `docker ps -aq` ]] ; then docker rm -f -v `docker ps -aq` ; fi
docker run -d --rm --name mysql --platform=linux/x86_64 \
--health-cmd='mysqladmin ping -h 127.0.0.1 -u $MYSQL_USER --password=$MYSQL_PASSWORD || exit 1' \
--health-start-period=1s --health-retries=1111 --health-interval=1s --health-timeout=5s \
-e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=database \
-e MYSQL_USER=user -e MYSQL_PASSWORD=password \
-p 3306:3306 \
mysql:8.0.24
while [[ $(docker ps -n 1 -q -f health=healthy -f status=running | wc -l) -lt 1 ]] ; do sleep 3 ; echo -n '.' ; done ; sleep 15; echo 'MySQL is ready.'
./mvnw clean compile spring-boot:run
docker stop mysql