Skip to content

[Feat&Mod] flyway 세팅 및 docker-compose 파일 수정 #122

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Feb 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ontime-back/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ dependencies {
implementation 'com.google.firebase:firebase-admin:9.2.0'

// flyway
// implementation 'org.flywaydb:flyway-mysql'
implementation 'org.flywaydb:flyway-mysql'

implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'

Expand Down
19 changes: 1 addition & 18 deletions ontime-back/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,4 @@ services:
- /home/ubuntu/OnTime-back/ontime-back/src/main/resources/key/:/app/resources/key/

depends_on:
- mysql # mysql 서비스가 실행된 이후에 backend를 실행

mysql:
image: mysql:8.0.34 # MySQL 8.0.34 이미지
container_name: mysql-container-ontime
environment:
MYSQL_DATABASE: ontime_db
MYSQL_USER: ontime
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
ONTIME_PASSWORD: ${ONTIME_PASSWORD}
ONTIME_HOST: ${ONTIME_HOST}
ports:
- "3307:3306" # 호스트의 3306 포트를 컨테이너의 3306 포트로 매핑
volumes:
- mysql_data:/var/lib/mysql # MySQL 데이터를 지속적으로 저장
volumes:
mysql_data: # MySQL 데이터를 저장할 볼륨 정의
- mysql # mysql 서비스가 실행된 이후에 backend를 실행
100 changes: 100 additions & 0 deletions ontime-back/src/main/resources/db/migration/V1__init.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
CREATE TABLE api_log (
api_log_id BIGINT AUTO_INCREMENT PRIMARY KEY,
request_url VARCHAR(255),
request_method VARCHAR(10),
user_id VARCHAR(255),
client_ip VARCHAR(50),
response_status INT,
taken_time BIGINT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE user (
user_id BIGINT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) UNIQUE NOT NULL,
password VARCHAR(255),
image_url VARCHAR(255),
name VARCHAR(30),
spare_time INT,
note TEXT,
punctuality_score FLOAT,
schedule_count_after_reset INT,
lateness_count_after_reset INT,
role VARCHAR(20) NOT NULL,
social_type VARCHAR(20),
social_id VARCHAR(255) UNIQUE,
refresh_token TEXT,
firebase_token TEXT,
social_login_token TEXT
);

CREATE TABLE place (
place_id BINARY(36) PRIMARY KEY,
place_name VARCHAR(255) NOT NULL
);

CREATE TABLE schedule (
schedule_id BINARY(36) PRIMARY KEY,
user_id BIGINT NOT NULL,
place_id BINARY(36),
schedule_name VARCHAR(30) NOT NULL,
move_time INT,
schedule_time TIMESTAMP,
is_change TINYINT(1),
is_started TINYINT(1),
schedule_spare_time INT,
lateness_time INT,
schedule_note TEXT,
CONSTRAINT fk_schedule_user FOREIGN KEY (user_id) REFERENCES user (user_id) ON DELETE CASCADE,
CONSTRAINT fk_schedule_place FOREIGN KEY (place_id) REFERENCES place (place_id) ON DELETE SET NULL
);

CREATE INDEX idx_schedule_user_id ON schedule(user_id);
CREATE INDEX idx_schedule_time ON schedule(schedule_time);

CREATE TABLE feedback (
feedback_id BINARY(36) PRIMARY KEY,
message TEXT NOT NULL,
create_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
user_id BIGINT NOT NULL,
CONSTRAINT fk_feedback_user FOREIGN KEY (user_id) REFERENCES user (user_id) ON DELETE CASCADE
);

CREATE TABLE friend_ship (
friend_ship_id BINARY(36) PRIMARY KEY,
requester_id BIGINT NOT NULL,
receiver_id BIGINT,
accept_status VARCHAR(20) NOT NULL,
CONSTRAINT fk_friendship_requester FOREIGN KEY (requester_id) REFERENCES user (user_id) ON DELETE CASCADE,
CONSTRAINT fk_friendship_receiver FOREIGN KEY (receiver_id) REFERENCES user (user_id) ON DELETE CASCADE
);

CREATE TABLE preparation_schedule (
preparation_schedule_id BINARY(36) PRIMARY KEY,
schedule_id BINARY(36) NOT NULL,
preparation_name VARCHAR(30) NOT NULL,
preparation_time INT,
next_preparation_id BINARY(36),
CONSTRAINT fk_preparation_schedule FOREIGN KEY (schedule_id) REFERENCES schedule (schedule_id) ON DELETE CASCADE,
CONSTRAINT fk_next_preparation FOREIGN KEY (next_preparation_id) REFERENCES preparation_schedule (preparation_schedule_id)
);

CREATE TABLE preparation_user (
preparation_id BINARY(36) PRIMARY KEY,
user_id BIGINT NOT NULL,
preparation_name VARCHAR(30) NOT NULL,
preparation_time INT,
next_preparation_id BINARY(36),
CONSTRAINT fk_preparation_user FOREIGN KEY (user_id) REFERENCES user (user_id) ON DELETE CASCADE,
CONSTRAINT fk_next_preparation_user FOREIGN KEY (next_preparation_id) REFERENCES preparation_user (preparation_id)
);

CREATE TABLE user_setting (
user_setting_id BINARY(36) PRIMARY KEY,
user_id BIGINT NOT NULL,
is_notifications_enabled TINYINT(1) DEFAULT 1,
sound_volume INT DEFAULT 50,
is_play_on_speaker TINYINT(1) DEFAULT 1,
is24hour_format TINYINT(1) DEFAULT 1,
CONSTRAINT fk_user_setting FOREIGN KEY (user_id) REFERENCES user (user_id) ON DELETE CASCADE
);
Loading