Skip to content

Commit

Permalink
chore: ditched liquibase if favour or flyway, simplified local db dev…
Browse files Browse the repository at this point in the history
…, added dev profile for api, added docker compose simple to support dev.
  • Loading branch information
nemo83 committed Jan 24, 2024
1 parent d9dfd15 commit 7859573
Show file tree
Hide file tree
Showing 20 changed files with 74 additions and 258 deletions.
1 change: 0 additions & 1 deletion .env
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
DB_USER_NAME="metadatadbadmin"
DB_USER_SECRET="metadata1337_"
SERVICE_USER_NAME="metadataservice"
SERVICE_USER_SECRET="metadata1337_"
Expand Down
5 changes: 5 additions & 0 deletions api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,11 @@
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>9.19.4</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
package org.cardanofoundation.metadatatools.api;

import jakarta.servlet.DispatcherType;
import java.util.List;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.core.Ordered;
import org.springframework.web.filter.ForwardedHeaderFilter;

import java.util.List;

@SpringBootApplication
public class MetadataApiApplication {
public static void main(String[] args) {
SpringApplication.run(MetadataApiApplication.class, args);
}
public static void main(String[] args) {
SpringApplication.run(MetadataApiApplication.class, args);
}

@Bean
public FilterRegistrationBean<ForwardedHeaderFilter> forwardedHeaderFilter() {
final ForwardedHeaderFilter filter = new ForwardedHeaderFilter();
final FilterRegistrationBean<ForwardedHeaderFilter> registration = new FilterRegistrationBean<>(filter);
registration.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.ERROR);
registration.setOrder(Ordered.HIGHEST_PRECEDENCE);
registration.setUrlPatterns(List.of("/**"));
return registration;
}

@Bean
public FilterRegistrationBean<ForwardedHeaderFilter> forwardedHeaderFilter() {
final ForwardedHeaderFilter filter = new ForwardedHeaderFilter();
final FilterRegistrationBean<ForwardedHeaderFilter> registration =
new FilterRegistrationBean<>(filter);
registration.setDispatcherTypes(
DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.ERROR);
registration.setOrder(Ordered.HIGHEST_PRECEDENCE);
registration.setUrlPatterns(List.of("/**"));
return registration;
}
}
Original file line number Diff line number Diff line change
@@ -1,39 +1,33 @@
package org.cardanofoundation.metadatatools.api.config;

import javax.sql.DataSource;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Log4j2
@Configuration
public class DatasourceConfig {
private static final String DEFAULT_DB_DRIVER_NAME = "org.postgresql.Driver";
private static final String DEFAULT_DB_URL = "jdbc:postgresql://localhost:5432/cf_metadata";

private DatabaseConnectionParameters getConnectionParametersFromEnvironment() {
final DatabaseConnectionParameters params = new DatabaseConnectionParameters();
params.setUsername(System.getProperty("dbUser"));
params.setPassword(System.getProperty("dbSecret"));
params.setDriverClassName(System.getProperty("dbDriverName", DEFAULT_DB_DRIVER_NAME));
params.setUrl(System.getProperty("dbUrl", DEFAULT_DB_URL));
return params;
}
@Value("${spring.datasource.driverClassName}")
private String driver;
@Value("${spring.datasource.url}")
private String dbUrl;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;

@Bean
public DataSource getDataSource() {
final DatabaseConnectionParameters databaseConnectionParams =
getConnectionParametersFromEnvironment();
final DataSourceBuilder<?> dataSourceBuilder = DataSourceBuilder.create();
dataSourceBuilder.driverClassName(databaseConnectionParams.getDriverClassName());
dataSourceBuilder.url(databaseConnectionParams.getUrl());
dataSourceBuilder.username(databaseConnectionParams.getUsername());
dataSourceBuilder.password(databaseConnectionParams.getPassword());
log.info(
String.format(
"Trying to connect to database %s with driver %s",
databaseConnectionParams.getUrl(), databaseConnectionParams.getDriverClassName()));
return dataSourceBuilder.build();
}
@Bean
public DataSource getDataSource() {
final DataSourceBuilder<?> dataSourceBuilder = DataSourceBuilder.create();
dataSourceBuilder.driverClassName(driver);
dataSourceBuilder.url(dbUrl);
dataSourceBuilder.username(username);
dataSourceBuilder.password(password);
log.info("Trying to connect to database {} with driver {}", dbUrl, driver);
return dataSourceBuilder.build();
}
}
15 changes: 15 additions & 0 deletions api/src/main/resources/application-dev.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Postgres Config
spring.datasource.url=${DB_URL:jdbc:postgresql://localhost:5432/cf_metadata}
spring.datasource.driverClassName=${DB_DRIVER:org.postgresql.Driver}
spring.datasource.username=${DB_USERNAME:metadataservice}
spring.datasource.password=${DB_PASSWORD:metadata1337_}

# Flyway Config
spring.flyway.url=${DB_URL:jdbc:postgresql://localhost:5432/cf_metadata}
spring.flyway.user=${DB_USERNAME:metadataservice}
spring.flyway.password=${DB_PASSWORD:metadata1337_}
spring.flyway.schemas=${DB_SCHEMA:public}
# baselineOnMigrate this will create a baseline version if none exists (https://flywaydb.org/documentation/configuration/parameters/baselineOnMigrate)
spring.flyway.baselineOnMigrate=true
spring.flyway.enabled=true
spring.flyway.validateMigrationNaming=true
11 changes: 0 additions & 11 deletions database/Dockerfile

This file was deleted.

38 changes: 0 additions & 38 deletions database/liquibase/changelogs/metadata.changelog-1.0.sql

This file was deleted.

11 changes: 0 additions & 11 deletions database/liquibase/changelogs/metadata.changelog-2.0.sql

This file was deleted.

11 changes: 0 additions & 11 deletions database/liquibase/changelogs/metadata.changelog-3.0.sql

This file was deleted.

15 changes: 0 additions & 15 deletions database/liquibase/changelogs/metadata.changelog-4.0.sql

This file was deleted.

5 changes: 0 additions & 5 deletions database/liquibase/metadata.root-changelog.yaml

This file was deleted.

3 changes: 0 additions & 3 deletions database/scripts/bootstrap.sql

This file was deleted.

7 changes: 0 additions & 7 deletions database/scripts/bootstrap_and_migrate.sh

This file was deleted.

50 changes: 0 additions & 50 deletions database/scripts/bootstrap_database.sh

This file was deleted.

2 changes: 2 additions & 0 deletions database/scripts/bootstrap_db.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
CREATE USER metadataservice PASSWORD 'metadata1337_';
CREATE DATABASE cf_metadata WITH OWNER metadataservice;
53 changes: 0 additions & 53 deletions database/scripts/migrate_database.sh

This file was deleted.

1 change: 0 additions & 1 deletion database/scripts/post_migration.sql

This file was deleted.

6 changes: 0 additions & 6 deletions database/scripts/teardown.sql

This file was deleted.

16 changes: 16 additions & 0 deletions docker-compose-simple.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: "3.9"
services:
db:
image: "${DB_IMAGE_NAME}:${DB_IMAGE_TAG}"
ports:
- "${DB_PORT}:${DB_PORT}"
environment:
POSTGRES_PASSWORD: "${DB_USER_SECRET}"
volumes:
- ./database/scripts/bootstrap_db.sql:/docker-entrypoint-initdb.d/bootstrap_db.sql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER_NAME}"]
interval: 5s
timeout: 5s
retries: 10
restart: on-failure
Loading

0 comments on commit 7859573

Please sign in to comment.