Skip to content

Commit cd0b2b6

Browse files
committed
Migrate to postgres database
1 parent 64ee7f2 commit cd0b2b6

5 files changed

Lines changed: 104 additions & 8 deletions

File tree

‎pom.xml‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@
4242
</dependency>
4343
<dependency>
4444
<groupId>org.flywaydb</groupId>
45-
<artifactId>flyway-mysql</artifactId>
46-
<version>11.8.2</version>
45+
<artifactId>flyway-database-postgresql</artifactId>
4746
</dependency>
4847
<!-- lombok dependency should not end up on classpath -->
4948
<dependency>
@@ -77,6 +76,10 @@
7776
<groupId>org.springframework.boot</groupId>
7877
<artifactId>spring-boot-starter-security</artifactId>
7978
</dependency>
79+
<dependency>
80+
<groupId>org.springframework.boot</groupId>
81+
<artifactId>spring-boot-starter-oauth2-client</artifactId>
82+
</dependency>
8083
<dependency>
8184
<groupId>org.springframework.boot</groupId>
8285
<artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
@@ -112,9 +115,8 @@
112115
<optional>true</optional>
113116
</dependency>
114117
<dependency>
115-
<groupId>org.mariadb.jdbc</groupId>
116-
<artifactId>mariadb-java-client</artifactId>
117-
<scope>runtime</scope>
118+
<groupId>org.postgresql</groupId>
119+
<artifactId>postgresql</artifactId>
118120
</dependency>
119121
<dependency>
120122
<groupId>org.springframework.boot</groupId>

‎src/main/resources/application.properties‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
spring.application.name=transfer
2-
spring.datasource.url=jdbc:mariadb://${MARIADB_HOST:127.0.0.1}:${MARIADB_PORT:3306}/jp-file-transfer?createDatabaseIfNotExists=true
3-
spring.datasource.username=${MARIADB_USER:jp}
4-
spring.datasource.password=${MARIADB_PASSWORD:abc123}
2+
spring.datasource.url=jdbc:postgresql://${POSTGRES_HOST:192.168.1.138}:${POSTGRES_PORT:5432}/jp_file_transfer?createDatabaseIfNotExists=true
3+
spring.datasource.username=${POSTGRES_USER:jp_file_transfer}
4+
spring.datasource.password=${POSTGRES_PASSWORD:jp_file_transfer}
55
server.tomcat.max-http-form-post-size=100GB
66
server.tomcat.max-swallow-size=100GB
77
spring.servlet.multipart.enabled=true
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
CREATE TABLE chunk
2+
(
3+
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
4+
file_id BIGINT,
5+
chunk_index INTEGER NOT NULL,
6+
chunk_checksum VARCHAR(40),
7+
CONSTRAINT pk_chunk PRIMARY KEY (id)
8+
);
9+
10+
CREATE TABLE file_entity
11+
(
12+
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
13+
file_name VARCHAR(255),
14+
file_type VARCHAR(255),
15+
file_size BIGINT NOT NULL,
16+
total_chunks INTEGER NOT NULL,
17+
file_checksum VARCHAR(40),
18+
transfer_id BIGINT NOT NULL,
19+
user_id BIGINT,
20+
chunk_size INTEGER NOT NULL,
21+
uploaded BOOLEAN,
22+
CONSTRAINT pk_fileentity PRIMARY KEY (id)
23+
);
24+
25+
CREATE TABLE refresh_tokens
26+
(
27+
id UUID NOT NULL,
28+
user_id BIGINT,
29+
creation_date TIMESTAMP WITHOUT TIME ZONE NOT NULL,
30+
expires_at TIMESTAMP WITHOUT TIME ZONE NOT NULL,
31+
CONSTRAINT pk_refresh_tokens PRIMARY KEY (id)
32+
);
33+
34+
CREATE TABLE shared_links
35+
(
36+
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
37+
uuid VARCHAR(255) NOT NULL,
38+
url VARCHAR(255) NOT NULL,
39+
download_link VARCHAR(255) NOT NULL,
40+
user_id BIGINT,
41+
created_at BIGINT NOT NULL,
42+
updated_at BIGINT NOT NULL,
43+
expires_at TIMESTAMP WITHOUT TIME ZONE NOT NULL,
44+
downloads INTEGER NOT NULL,
45+
max_downloads INTEGER NOT NULL,
46+
CONSTRAINT pk_shared_links PRIMARY KEY (id)
47+
);
48+
49+
CREATE TABLE transfer
50+
(
51+
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
52+
active BOOLEAN NOT NULL,
53+
start_time TIMESTAMP WITHOUT TIME ZONE,
54+
end_time TIMESTAMP WITHOUT TIME ZONE,
55+
upload_path VARCHAR(255),
56+
user_id BIGINT,
57+
shared_link_id BIGINT,
58+
CONSTRAINT pk_transfer PRIMARY KEY (id)
59+
);
60+
61+
CREATE TABLE users
62+
(
63+
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
64+
username VARCHAR(255),
65+
email VARCHAR(255),
66+
active BOOLEAN NOT NULL,
67+
password VARCHAR(255),
68+
role VARCHAR(255),
69+
CONSTRAINT pk_users PRIMARY KEY (id)
70+
);
71+
72+
ALTER TABLE transfer
73+
ADD CONSTRAINT uc_transfer_sharedlink UNIQUE (shared_link_id);
74+
75+
ALTER TABLE chunk
76+
ADD CONSTRAINT FK_CHUNK_ON_FILE FOREIGN KEY (file_id) REFERENCES file_entity (id);
77+
78+
ALTER TABLE file_entity
79+
ADD CONSTRAINT FK_FILEENTITY_ON_TRANSFER FOREIGN KEY (transfer_id) REFERENCES transfer (id);
80+
81+
ALTER TABLE file_entity
82+
ADD CONSTRAINT FK_FILEENTITY_ON_USER FOREIGN KEY (user_id) REFERENCES users (id);
83+
84+
ALTER TABLE refresh_tokens
85+
ADD CONSTRAINT FK_REFRESH_TOKENS_ON_USER FOREIGN KEY (user_id) REFERENCES users (id);
86+
87+
ALTER TABLE shared_links
88+
ADD CONSTRAINT FK_SHARED_LINKS_ON_USER FOREIGN KEY (user_id) REFERENCES users (id);
89+
90+
ALTER TABLE transfer
91+
ADD CONSTRAINT FK_TRANSFER_ON_SHAREDLINK FOREIGN KEY (shared_link_id) REFERENCES shared_links (id);
92+
93+
ALTER TABLE transfer
94+
ADD CONSTRAINT FK_TRANSFER_ON_USER FOREIGN KEY (user_id) REFERENCES users (id);
File renamed without changes.

src/main/resources/db/migration/V1__filesize_long.sql renamed to src/main/resources/db/old/mariadb_V1__filesize_long.sql

File renamed without changes.

0 commit comments

Comments
 (0)