Skip to content
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

chore: flyway 도입 #130

Merged
merged 9 commits into from
Jan 5, 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
3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ dependencies {//todo: 안쓰는 의존성이나 deprecated된 의존성 제거
'jakarta.persistence:jakarta.persistence-api:3.1.0',
'jakarta.annotation:jakarta.annotation-api:2.1.1'
)

implementation 'org.flywaydb:flyway-core'
implementation 'org.flywaydb:flyway-mysql'
}

tasks.named('test') {
Expand Down
259 changes: 259 additions & 0 deletions src/main/resources/db/migration/V1__init.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,259 @@
CREATE TABLE IF NOT EXISTS application
(
id BIGINT AUTO_INCREMENT NOT NULL,
term VARCHAR(50) NOT NULL,
site_user_id BIGINT NULL,
nickname_for_apply VARCHAR(100) NULL,
update_count INT DEFAULT 0 NOT NULL,
verify_status VARCHAR(50) DEFAULT 'PENDING' NOT NULL,
gpa DOUBLE NOT NULL,
gpa_criteria DOUBLE NOT NULL,
language_test_type ENUM ('CEFR','DALF','DELF','DUOLINGO','IELTS','JLPT','NEW_HSK','TCF','TEF','TOEFL_IBT','TOEFL_ITP','TOEIC') NOT NULL,
language_test_score VARCHAR(255) NOT NULL,
gpa_report_url VARCHAR(500) NOT NULL,
language_test_report_url VARCHAR(500) NOT NULL,
first_choice_university_id BIGINT NULL,
second_choice_university_id BIGINT NULL,
third_choice_university_id BIGINT NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS board
(
code VARCHAR(20) NOT NULL,
korean_name VARCHAR(20) NOT NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (code)
);

CREATE TABLE IF NOT EXISTS comment
(
created_at datetime NULL,
id BIGINT AUTO_INCREMENT NOT NULL,
parent_id BIGINT NULL,
post_id BIGINT NULL,
site_user_id BIGINT NULL,
updated_at datetime NULL,
content VARCHAR(255) NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS country
(
code VARCHAR(2) NOT NULL,
region_code VARCHAR(10) NULL,
korean_name VARCHAR(100) NOT NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (code)
);

CREATE TABLE IF NOT EXISTS interested_country
(
country_code VARCHAR(2) NULL,
id BIGINT AUTO_INCREMENT NOT NULL,
site_user_id BIGINT NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS interested_region
(
id BIGINT AUTO_INCREMENT NOT NULL,
site_user_id BIGINT NULL,
region_code VARCHAR(10) NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS language_requirement
(
id BIGINT AUTO_INCREMENT NOT NULL,
university_info_for_apply_id BIGINT NULL,
language_test_type ENUM ('CEFR','DALF','DELF','DUOLINGO','IELTS','JLPT','NEW_HSK','TCF','TEF','TOEFL_IBT','TOEFL_ITP','TOEIC') NOT NULL,
min_score VARCHAR(255) NOT NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS liked_university
(
id BIGINT AUTO_INCREMENT NOT NULL,
site_user_id BIGINT NULL,
university_info_for_apply_id BIGINT NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS post
(
is_question BIT(1) NULL,
created_at datetime NULL,
id BIGINT AUTO_INCREMENT NOT NULL,
like_count BIGINT NULL,
site_user_id BIGINT NULL,
updated_at datetime NULL,
view_count BIGINT NULL,
board_code VARCHAR(20) NULL,
content VARCHAR(1000) NULL,
category ENUM ('자유','전체','질문') NULL,
title VARCHAR(255) NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS post_image
(
id BIGINT AUTO_INCREMENT NOT NULL,
post_id BIGINT NULL,
url VARCHAR(500) NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS post_like
(
id BIGINT AUTO_INCREMENT NOT NULL,
post_id BIGINT NULL,
site_user_id BIGINT NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS region
(
code VARCHAR(10) NOT NULL,
korean_name VARCHAR(100) NOT NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (code)
);

CREATE TABLE IF NOT EXISTS site_user
(
quited_at date NULL,
id BIGINT AUTO_INCREMENT NOT NULL,
nickname_modified_at datetime NULL,
birth VARCHAR(20) NOT NULL,
email VARCHAR(100) NOT NULL,
nickname VARCHAR(100) NOT NULL,
profile_image_url VARCHAR(500) NULL,
gender ENUM ('FEMALE','MALE','PREFER_NOT_TO_SAY') NOT NULL,
preparation_stage ENUM ('AFTER_EXCHANGE','CONSIDERING','PREPARING_FOR_DEPARTURE','STUDYING_ABROAD') NOT NULL,
`role` ENUM ('MENTEE','MENTOR') NOT NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS university
(
id BIGINT AUTO_INCREMENT NOT NULL,
region_code VARCHAR(10) NULL,
country_code VARCHAR(2) NULL,
format_name VARCHAR(100) NOT NULL,
english_name VARCHAR(100) NOT NULL,
korean_name VARCHAR(100) NOT NULL,
background_image_url VARCHAR(500) NOT NULL,
logo_image_url VARCHAR(500) NOT NULL,
details_for_local VARCHAR(1000) NULL,
homepage_url VARCHAR(500) NULL,
english_course_url VARCHAR(500) NULL,
accommodation_url VARCHAR(500) NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS university_info_for_apply
(
id BIGINT AUTO_INCREMENT NOT NULL,
term VARCHAR(50) NOT NULL,
university_id BIGINT NULL,
korean_name VARCHAR(100) NOT NULL,
student_capacity INT NULL,
tuition_fee_type ENUM ('HOME_UNIVERSITY_PAYMENT','MIXED_PAYMENT','OVERSEAS_UNIVERSITY_PAYMENT') NULL,
semester_available_for_dispatch ENUM ('FOUR_SEMESTER','IRRELEVANT','NO_DATA','ONE_OR_TWO_SEMESTER','ONE_SEMESTER','ONE_YEAR') NULL,
details_for_language VARCHAR(1000) NULL,
gpa_requirement VARCHAR(100) NULL,
gpa_requirement_criteria VARCHAR(100) NULL,
semester_requirement VARCHAR(100) NULL,
details_for_apply VARCHAR(1000) NULL,
details_for_major VARCHAR(1000) NULL,
details_for_english_course VARCHAR(1000) NULL,
details_for_accommodation VARCHAR(1000) NULL,
details VARCHAR(500) NULL,
CONSTRAINT `PRIMARY` PRIMARY KEY (id)
);

ALTER TABLE site_user
ADD CONSTRAINT site_user_email_unique UNIQUE (email);

ALTER TABLE comment
ADD CONSTRAINT FK11tfff2an5hdv747cktxbdi6t FOREIGN KEY (site_user_id) REFERENCES site_user (id) ON DELETE NO ACTION;

CREATE INDEX FK11tfff2an5hdv747cktxbdi6t ON comment (site_user_id);

ALTER TABLE interested_country
ADD CONSTRAINT FK26u5am55jefclcd7r5smk8ai7 FOREIGN KEY (site_user_id) REFERENCES site_user (id) ON DELETE NO ACTION;

CREATE INDEX FK26u5am55jefclcd7r5smk8ai7 ON interested_country (site_user_id);

ALTER TABLE interested_region
ADD CONSTRAINT FK7h2182pqkavi9d8o2pku6gidi FOREIGN KEY (region_code) REFERENCES region (code) ON DELETE NO ACTION;

CREATE INDEX FK7h2182pqkavi9d8o2pku6gidi ON interested_region (region_code);

ALTER TABLE interested_country
ADD CONSTRAINT FK7x4ad24lblkq2ss0920uqfd6s FOREIGN KEY (country_code) REFERENCES country (code) ON DELETE NO ACTION;

CREATE INDEX FK7x4ad24lblkq2ss0920uqfd6s ON interested_country (country_code);

ALTER TABLE university_info_for_apply
ADD CONSTRAINT FKd0257hco6uy2utd1xccjh3fal FOREIGN KEY (university_id) REFERENCES university (id) ON DELETE NO ACTION;

CREATE INDEX FKd0257hco6uy2utd1xccjh3fal ON university_info_for_apply (university_id);

ALTER TABLE post
ADD CONSTRAINT FKfu9q9o3mlqkd58wg45ykgu8ni FOREIGN KEY (site_user_id) REFERENCES site_user (id) ON DELETE NO ACTION;

CREATE INDEX FKfu9q9o3mlqkd58wg45ykgu8ni ON post (site_user_id);

ALTER TABLE post_like
ADD CONSTRAINT FKgx1v0whinnoqveopoh6tb4ykb FOREIGN KEY (site_user_id) REFERENCES site_user (id) ON DELETE NO ACTION;

CREATE INDEX FKgx1v0whinnoqveopoh6tb4ykb ON post_like (site_user_id);

ALTER TABLE liked_university
ADD CONSTRAINT FKhj3gn3mqmfeiiw9jt83g7t3rk FOREIGN KEY (university_info_for_apply_id) REFERENCES university_info_for_apply (id) ON DELETE NO ACTION;

CREATE INDEX FKhj3gn3mqmfeiiw9jt83g7t3rk_idx ON liked_university (university_info_for_apply_id);

ALTER TABLE interested_region
ADD CONSTRAINT FKia6h0pbisqhgm3lkeya6vqo4w FOREIGN KEY (site_user_id) REFERENCES site_user (id) ON DELETE NO ACTION;

CREATE INDEX FKia6h0pbisqhgm3lkeya6vqo4w ON interested_region (site_user_id);

ALTER TABLE country
ADD CONSTRAINT FKife035f2scmgcutdtv6bfd6g8 FOREIGN KEY (region_code) REFERENCES region (code) ON DELETE NO ACTION;

CREATE INDEX FKife035f2scmgcutdtv6bfd6g8 ON country (region_code);

ALTER TABLE university
ADD CONSTRAINT FKksoyt17h0te1ra588y4a3208r FOREIGN KEY (country_code) REFERENCES country (code) ON DELETE NO ACTION;

CREATE INDEX FKksoyt17h0te1ra588y4a3208r ON university (country_code);

ALTER TABLE university
ADD CONSTRAINT FKpwr8ocev54r8d22wdyj4a37bc FOREIGN KEY (region_code) REFERENCES region (code) ON DELETE NO ACTION;

CREATE INDEX FKpwr8ocev54r8d22wdyj4a37bc ON university (region_code);

ALTER TABLE language_requirement
ADD CONSTRAINT FKr75pgslwfbrvjkfau6dwtlg8l FOREIGN KEY (university_info_for_apply_id) REFERENCES university_info_for_apply (id) ON DELETE NO ACTION;

CREATE INDEX FKr75pgslwfbrvjkfau6dwtlg8l ON language_requirement (university_info_for_apply_id);

ALTER TABLE liked_university
ADD CONSTRAINT FKrrhud921brslcukx6fyuh0th3 FOREIGN KEY (site_user_id) REFERENCES site_user (id) ON DELETE NO ACTION;

CREATE INDEX FKrrhud921brslcukx6fyuh0th3 ON liked_university (site_user_id);

ALTER TABLE application
ADD CONSTRAINT FKs4s3hebtn7vwd0b4xt8msxsis FOREIGN KEY (site_user_id) REFERENCES site_user (id) ON DELETE NO ACTION;

CREATE INDEX FKs4s3hebtn7vwd0b4xt8msxsis ON application (site_user_id);

ALTER TABLE application
ADD CONSTRAINT fk_university_info_for_apply_id_1 FOREIGN KEY (first_choice_university_id) REFERENCES university_info_for_apply (id) ON DELETE NO ACTION;

CREATE INDEX fk_university_info_for_apply_id_1 ON application (first_choice_university_id);

ALTER TABLE application
ADD CONSTRAINT fk_university_info_for_apply_id_2 FOREIGN KEY (second_choice_university_id) REFERENCES university_info_for_apply (id) ON DELETE NO ACTION;

CREATE INDEX fk_university_info_for_apply_id_2 ON application (second_choice_university_id);
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
create table gpa_score (
gpa float(53) not null,
gpa_criteria float(53) not null,
issue_date date,
created_at datetime(6),
id bigint not null auto_increment,
site_user_id bigint,
updated_at datetime(6),
gpa_report_url varchar(500) not null,
rejected_reason varchar(255),
verify_status varchar(50) not null default 'PENDING',
primary key (id)
) engine=InnoDB;

alter table gpa_score
add constraint FK2k65qncfxvol5j4l4hb7d6iv1
foreign key (site_user_id)
references site_user (id);
wibaek marked this conversation as resolved.
Show resolved Hide resolved

create table language_test_score (
issue_date date,
created_at datetime(6),
id bigint not null auto_increment,
site_user_id bigint,
updated_at datetime(6),
language_test_type enum ('CEFR', 'DALF', 'DELF', 'DUOLINGO', 'IELTS', 'JLPT', 'NEW_HSK', 'TCF', 'TEF', 'TOEFL_IBT', 'TOEFL_ITP', 'TOEIC') not null,
language_test_report_url varchar(500) not null,
language_test_score varchar(255) not null,
rejected_reason varchar(255),
verify_status varchar(50) not null default 'PENDING',
primary key (id)
) engine=InnoDB;

alter table language_test_score
add constraint FKt2uevj2r4iuxumblj5ofbgmqn
foreign key (site_user_id)
references site_user (id);

nayonsoso marked this conversation as resolved.
Show resolved Hide resolved
alter table application add column is_delete bit;

alter table application drop foreign key fk_university_info_for_apply_id_1;
alter table application drop foreign key fk_university_info_for_apply_id_2;

alter table application
add constraint FKi822ljuirbu9o0lnd9jt7l7qg
foreign key (first_choice_university_id)
references university_info_for_apply (id);

alter table application
add constraint FKepp2by7frnkt1o1w3v4t4lgtu
foreign key (second_choice_university_id)
references university_info_for_apply (id);

alter table application
add constraint FKeajojvwgn069mfxhbq5ja1sws
foreign key (third_choice_university_id)
references university_info_for_apply (id);
nayonsoso marked this conversation as resolved.
Show resolved Hide resolved

alter table comment
add constraint FKde3rfu96lep00br5ov0mdieyt
foreign key (parent_id)
references comment (id);

alter table comment
add constraint FKs1slvnkuemjsq2kj4h3vhx7i1
foreign key (post_id)
references post (id);

alter table liked_university drop foreign key FKhj3gn3mqmfeiiw9jt83g7t3rk;
alter table liked_university drop foreign key FKrrhud921brslcukx6fyuh0th3;

alter table liked_university
add constraint FKkuqxb64dnfrl7har8t5ionw83
foreign key (site_user_id)
references site_user (id);

alter table liked_university
add constraint FKo317gq6apc3a091w32qhidtjt
foreign key (university_info_for_apply_id)
references university_info_for_apply (id);

alter table post
add constraint FKlpnkhhbfb3gg3tfreh2a7qh8b
foreign key (board_code)
references board (code);

-- alter table post_image
-- add constraint FKsip7qv57jw2fw50g97t16nrjr
-- foreign key (post_id)
-- references post (id);
wibaek marked this conversation as resolved.
Show resolved Hide resolved

alter table post_like
add constraint FKj7iy0k7n3d0vkh8o7ibjna884
foreign key (post_id)
references post (id);
2 changes: 1 addition & 1 deletion src/main/resources/secret