Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/daggerok/liquibase-r2dbc-spring-boot-starter

This repository demonstrates how 2 implement Liquibase R2DBC Spring Boot starter. Stack: Liquibase R2DBC Spring Boot starter with next technology stack: Liquibase, R2DBC, Spring Boot, Kotlin, Junit Jupiter 5, MySQL, MariaDB, PostgreSQL, MS SQL Server, H2, r2dbc-pool, r2dbc-proxy, Test-containers, Maven, Bash
https://github.com/daggerok/liquibase-r2dbc-spring-boot-starter

frontend-maven-plugin github-actions junit-jupiter kotlin liquibase mariadb maven maven-gpg-plugin maven-resources-plugin mssql mssqlserver mysql nexus-staging-maven-plugin ossrh r2dbc-pool r2dbc-proxy sonatype spring-data-r2dbc testcontainers vuepress

Last synced: 3 days ago
JSON representation

This repository demonstrates how 2 implement Liquibase R2DBC Spring Boot starter. Stack: Liquibase R2DBC Spring Boot starter with next technology stack: Liquibase, R2DBC, Spring Boot, Kotlin, Junit Jupiter 5, MySQL, MariaDB, PostgreSQL, MS SQL Server, H2, r2dbc-pool, r2dbc-proxy, Test-containers, Maven, Bash

Awesome Lists containing this project

README

        

# Liquibase R2DBC spring-boot starter [![tests](https://github.com/daggerok/liquibase-r2dbc-spring-boot-starter/actions/workflows/tests.yml/badge.svg)](https://github.com/daggerok/liquibase-r2dbc-spring-boot-starter/actions/workflows/tests.yml) [![pages](https://github.com/daggerok/liquibase-r2dbc-spring-boot-starter/actions/workflows/pages.yaml/badge.svg)](https://daggerok.github.io/liquibase-r2dbc-spring-boot-starter/)
This repository demonstrates how 2 implement Liquibase R2DBC Spring Boot starter to be used in reactive projects with MySQL, MariaDB,
PostgreSQL, MS SQL Server, r2dbc-pool, r2dbc-proxy or H2 database. It's not pure reactive liquibase implementation as you might think, we
are simply transforming R2DBC URL into liquibase compatible in a little spring-boot starter to apply liquibase migrations update
automatically within application runner bean

## Support
Java 17, 18, 19, 20 with Spring Boot 3.x

[![Maven Central](https://img.shields.io/maven-central/v/io.github.daggerok/liquibase-r2dbc-spring-boot-starter.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22io.github.daggerok%22%20AND%20a:%22liquibase-r2dbc-spring-boot-starter%22)

### Getting started

```xml

io.github.daggerok
liquibase-r2dbc-spring-boot-starter
3.1.3

```

or

```kotlin
dependency("io.github.daggerok:liquibase-r2dbc-spring-boot-starter:3.1.3")
```

And then use regular Spring Boot + Liquibase setup:

* Create necessary Liquibase migration `src/main/resources/liquibase/master-changelog.xml` file
* In `application.yaml` file add necessary liquibase configuration:
```yaml
spring:
r2dbc:
url: 'r2dbc:mysql://127.0.0.1:3306/database'
username: 'user'
password: 'password'
liquibase:
change-log: classpath*:/liquibase/changelog-master.xml
logging:
level:
io.netty.resolver.dns.DnsServerAddressStreamProviders: off
```
* In `pom.xml` add necessary dependencies related to database going to be used:
* MySQL:
```xml


com.mysql
mysql-connector-j
runtime


dev.miku
r2dbc-mysql
0.8.2.RELEASE
runtime


```
* MariaDB:
```xml


org.mariadb.jdbc
mariadb-java-client
runtime


org.mariadb
r2dbc-mariadb
runtime


io.r2dbc
r2dbc-pool
runtime


```
* PostgreSQL:
```xml


org.postgresql
postgresql
runtime


org.postgresql
r2dbc-postgresql
runtime


```
* H2:
```xml


com.h2database
h2
runtime


io.r2dbc
r2dbc-h2
runtime


```

NOTE: If you want to use `*-SNAPSHOT` version, please make sure you have added snapshot maven repository like so

```xml


sonatype-nexus-snapshots
Sonatype OSS Snapshot Repository
https://s01.oss.sonatype.org/content/repositories/snapshots
true
false

```

or

```kotlin
repositories {
maven {
url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots")
}
}
```

See: https://s01.oss.sonatype.org/content/repositories/snapshots/io/github/daggerok/

Otherwise, use only released version. See: https://repo1.maven.org/maven2/io/github/daggerok/liquibase-r2dbc-spring-boot-starter/

### Technology Stack

* Liquibase
* R2DBC
* Spring Boot 3.x
* Kotlin
* Junit Jupiter 5
* H2 (file, mem)
* MySQL
* MariaDB
* Postgresql
* MS SQL Server
* R2DBC (pool, proxy)
* Testcontainers
* Maven

### Reference documentation

* Checkout [documentation](https://daggerok.github.io/liquibase-r2dbc-spring-boot-starter/) for details
* ALso check [developer guide for contributors](docs/CONTRIBUTING.md)