From edd5e1c64cc89284891de01030156a53e866b8d3 Mon Sep 17 00:00:00 2001 From: jjjh02 Date: Fri, 28 Feb 2025 00:43:51 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat::flyway=20=EC=84=B8=ED=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ontime-back/build.gradle | 2 +- .../main/resources/db/migration/V1__init.sql | 100 ++++++++++++++++++ 2 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 ontime-back/src/main/resources/db/migration/V1__init.sql diff --git a/ontime-back/build.gradle b/ontime-back/build.gradle index d36aca2..96ee8d0 100644 --- a/ontime-back/build.gradle +++ b/ontime-back/build.gradle @@ -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' diff --git a/ontime-back/src/main/resources/db/migration/V1__init.sql b/ontime-back/src/main/resources/db/migration/V1__init.sql new file mode 100644 index 0000000..d6d90e7 --- /dev/null +++ b/ontime-back/src/main/resources/db/migration/V1__init.sql @@ -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 +); \ No newline at end of file From d5f1febce98da86b973a87f359d2a14271c9158b Mon Sep 17 00:00:00 2001 From: jjjh02 Date: Fri, 28 Feb 2025 00:44:12 +0900 Subject: [PATCH 2/2] =?UTF-8?q?mod::mysql-container=20=EC=97=B0=EA=B2=B0?= =?UTF-8?q?=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ontime-back/docker-compose.yml | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/ontime-back/docker-compose.yml b/ontime-back/docker-compose.yml index 1b28d35..3526a8b 100644 --- a/ontime-back/docker-compose.yml +++ b/ontime-back/docker-compose.yml @@ -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 데이터를 저장할 볼륨 정의 \ No newline at end of file + - mysql # mysql 서비스가 실행된 이후에 backend를 실행 \ No newline at end of file