🗃️ Setup flyway
This commit is contained in:
parent
29a6f9f82d
commit
22d32ea4f2
8
pom.xml
8
pom.xml
@ -71,6 +71,14 @@
|
|||||||
<groupId>io.quarkus</groupId>
|
<groupId>io.quarkus</groupId>
|
||||||
<artifactId>quarkus-smallrye-jwt-build</artifactId>
|
<artifactId>quarkus-smallrye-jwt-build</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.quarkus</groupId>
|
||||||
|
<artifactId>quarkus-flyway</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.flywaydb</groupId>
|
||||||
|
<artifactId>flyway-database-postgresql</artifactId>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.quarkus</groupId>
|
<groupId>io.quarkus</groupId>
|
||||||
<artifactId>quarkus-junit5</artifactId>
|
<artifactId>quarkus-junit5</artifactId>
|
||||||
|
|||||||
@ -20,6 +20,7 @@ public class AccountEntity extends PanacheEntityBase
|
|||||||
|
|
||||||
private String email;
|
private String email;
|
||||||
|
|
||||||
|
@Column(name = "account_password")
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
@Enumerated(EnumType.STRING)
|
@Enumerated(EnumType.STRING)
|
||||||
|
|||||||
@ -3,16 +3,29 @@ quarkus.http.port=8089
|
|||||||
quarkus.http.test-port=9089
|
quarkus.http.test-port=9089
|
||||||
%dev.quarkus.http.host=0.0.0.0
|
%dev.quarkus.http.host=0.0.0.0
|
||||||
|
|
||||||
quarkus.hibernate-orm.schema-management.strategy=drop-and-create
|
|
||||||
|
|
||||||
%dev.smallrye.jwt.sign.key.location=private.key
|
%dev.smallrye.jwt.sign.key.location=private.key
|
||||||
%dev.mp.jwt.verify.publickey.location=public.crt
|
%dev.mp.jwt.verify.publickey.location=public.crt
|
||||||
mp.jwt.verify.issuer=https://tavolio.de
|
mp.jwt.verify.issuer=https://tavolio.de
|
||||||
|
|
||||||
|
# Postgres
|
||||||
|
prod.quarkus.hibernate-orm.validate-in-dev-mode=false
|
||||||
|
quarkus.hibernate-orm.schema-management.strategy=none
|
||||||
|
quarkus.datasource.db-kind=postgresql
|
||||||
|
|
||||||
%dev.quarkus.datasource.username=postgres
|
%dev.quarkus.datasource.username=postgres
|
||||||
%dev.quarkus.datasource.password=${DB_PASSWORD}
|
%dev.quarkus.datasource.password=${DB_PASSWORD}
|
||||||
%dev.quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/postgres?currentSchema=iam
|
%dev.quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/postgres?currentSchema=iam
|
||||||
|
|
||||||
|
%prod.quarkus.datasource.username=${DB_USER}
|
||||||
|
%prod.quarkus.datasource.password=${DB_PASSWORD}
|
||||||
|
%prod.quarkus.datasource.jdbc.url=jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_DATABASE}?currentSchema=${DB_SCHEMA}
|
||||||
|
|
||||||
|
# Flyway
|
||||||
|
%test.quarkus.flyway.clean-at-start=true
|
||||||
|
%dev.quarkus.flyway.clean-at-start=true
|
||||||
|
%dev.quarkus.flyway.locations=db/migration,db/dev
|
||||||
|
quarkus.flyway.migrate-at-start=true
|
||||||
|
|
||||||
# IAM Superuser
|
# IAM Superuser
|
||||||
%test,dev.iam.user.name=tavolio
|
%test,dev.iam.user.name=tavolio
|
||||||
%test,dev.iam.user.password=tavolio
|
%test,dev.iam.user.password=tavolio
|
||||||
9
src/main/resources/import.sql → src/main/resources/db/dev/V9999__init.sql
Normal file → Executable file
9
src/main/resources/import.sql → src/main/resources/db/dev/V9999__init.sql
Normal file → Executable file
@ -1,11 +1,4 @@
|
|||||||
-- This file allow to write SQL commands that will be emitted in test and dev.
|
INSERT INTO account (id, firstname, lastname, email, account_password, status)
|
||||||
-- The commands are commented as their support depends of the database
|
|
||||||
-- insert into myentity (id, field) values(1, 'field-1');
|
|
||||||
-- insert into myentity (id, field) values(2, 'field-2');
|
|
||||||
-- insert into myentity (id, field) values(3, 'field-3');
|
|
||||||
-- alter sequence myentity_seq restart with 4;
|
|
||||||
|
|
||||||
INSERT INTO account (id, firstname, lastname, email, password, status)
|
|
||||||
VALUES ('66b261fe-4c5a-4728-9857-67717f02d4e1', 'Andreas', 'Dinauer', 'andreas.j.dinauer@gmail.com', '$2a$12$cdrzIY4sMFAXiz29uo9Ul.MPy0RN0FGS2yjVzb5BTe6bSijn4eGQy', 'REGISTERED');
|
VALUES ('66b261fe-4c5a-4728-9857-67717f02d4e1', 'Andreas', 'Dinauer', 'andreas.j.dinauer@gmail.com', '$2a$12$cdrzIY4sMFAXiz29uo9Ul.MPy0RN0FGS2yjVzb5BTe6bSijn4eGQy', 'REGISTERED');
|
||||||
|
|
||||||
INSERT INTO membership(id, tenant_type, tenant_id, member_role, member_since, account_id)
|
INSERT INTO membership(id, tenant_type, tenant_id, member_role, member_since, account_id)
|
||||||
23
src/main/resources/db/migration/V1.0.1__init.sql
Executable file
23
src/main/resources/db/migration/V1.0.1__init.sql
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
CREATE TABLE account (
|
||||||
|
email VARCHAR(255) NULL,
|
||||||
|
firstname VARCHAR(255) NULL,
|
||||||
|
id VARCHAR(255) NOT NULL,
|
||||||
|
lastname VARCHAR(255) NULL,
|
||||||
|
account_password VARCHAR(255) NULL,
|
||||||
|
status VARCHAR(255) NULL,
|
||||||
|
CONSTRAINT account_pkey PRIMARY KEY (id),
|
||||||
|
CONSTRAINT account_status_check CHECK (((status)::text = ANY ((ARRAY['INIT'::character varying, 'REGISTERED'::character varying])::text[])))
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE membership (
|
||||||
|
member_since TIMESTAMP(6) WITH TIME ZONE NOT NULL,
|
||||||
|
account_id VARCHAR(255) NOT NULL,
|
||||||
|
id VARCHAR(255) NOT NULL,
|
||||||
|
member_role VARCHAR(255) NOT NULL,
|
||||||
|
tenant_id VARCHAR(255) NOT NULL,
|
||||||
|
tenant_type VARCHAR(255) NOT NULL,
|
||||||
|
CONSTRAINT membership_member_role_check CHECK (((member_role)::text = ANY ((ARRAY['OWNER'::character varying, 'ADMIN'::character varying, 'MEMBER'::character varying])::text[]))),
|
||||||
|
CONSTRAINT membership_pkey PRIMARY KEY (id),
|
||||||
|
CONSTRAINT membership_tenant_type_check CHECK (((tenant_type)::text = ANY ((ARRAY['ORGANISATION'::character varying, 'RESTAURANT'::character varying])::text[]))),
|
||||||
|
CONSTRAINT fkd1yliqdvipm4yvq2tulbktpg6 FOREIGN KEY (account_id) REFERENCES account(id)
|
||||||
|
);
|
||||||
Loading…
x
Reference in New Issue
Block a user