[#11] modify: DB 모든 테이블 primary key 이름 변경

- 전체적인 flyway migration 파일 수정
- primary key, foreign key 수정을 위한 ALTER 쿼리 내용 추가
This commit is contained in:
beaniejoy
2022-08-13 17:20:16 +09:00
parent 02b3ed2e9b
commit 6db0da2b82
10 changed files with 75 additions and 13 deletions

View File

@@ -14,8 +14,8 @@ spring:
show-sql: false
flyway:
baseline-on-migrate: true
baseline-version: 0
locations: classpath:db/migration,classpath:db/seed
# baseline-version: 0
logging:
level:

View File

@@ -0,0 +1,5 @@
DROP TABLE IF EXISTS `option_detail`;
DROP TABLE IF EXISTS `menu_option`;
DROP TABLE IF EXISTS `cafe_image`;
DROP TABLE IF EXISTS `cafe_menu`;
DROP TABLE IF EXISTS `cafe`;

View File

@@ -1,5 +1,3 @@
DROP TABLE IF EXISTS `cafe`;
CREATE TABLE `cafe` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '카페 ID',
`name` varchar(20) NOT NULL COMMENT '카페명',

View File

@@ -1,5 +1,3 @@
DROP TABLE IF EXISTS `cafe_menu`;
CREATE TABLE `cafe_menu` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '카페 메뉴 ID',
`name` varchar(50) NOT NULL COMMENT '카페 메뉴명',

View File

@@ -1,5 +1,3 @@
DROP TABLE IF EXISTS `cafe_image`;
CREATE TABLE `cafe_image` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '카페 이미지 ID',
`img_url` varchar(255) NOT NULL COMMENT '이미지 경로',

View File

@@ -1,5 +1,3 @@
DROP TABLE IF EXISTS `menu_option`;
CREATE TABLE `menu_option`(
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '옵션 ID',
`title` varchar(50) NOT NULL COMMENT '메뉴 옵션 이름',

View File

@@ -1,5 +1,3 @@
DROP TABLE IF EXISTS `option_detail`;
CREATE TABLE `option_detail` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '옵션 상세 ID',
`name` varchar(50) NOT NULL COMMENT '옵션 상세명',

View File

@@ -0,0 +1,67 @@
-- #### Drop all foreign keys
ALTER TABLE `cafe_menu` DROP FOREIGN KEY `cafe_menu_ibfk_1`;
ALTER TABLE `cafe_menu` DROP INDEX `cafe_id`;
ALTER TABLE `cafe_image` DROP FOREIGN KEY `cafe_image_ibfk_1`;
ALTER TABLE `cafe_image` DROP INDEX `cafe_id`;
ALTER TABLE `menu_option` DROP FOREIGN KEY `menu_option_ibfk_1`;
ALTER TABLE `menu_option` DROP INDEX `menu_id`;
ALTER TABLE `option_detail` DROP FOREIGN KEY `option_detail_ibfk_1`;
ALTER TABLE `option_detail` DROP INDEX `option_id`;
-- #### Drop all primary keys & Add new primary keys
-- 1. delete auto_increment
ALTER TABLE `cafe` MODIFY id bigint NOT NULL;
ALTER TABLE `cafe_menu` MODIFY id bigint NOT NULL;
ALTER TABLE `cafe_image` MODIFY id bigint NOT NULL;
ALTER TABLE `menu_option` MODIFY id bigint NOT NULL;
ALTER TABLE `option_detail` MODIFY id bigint NOT NULL;
-- 2. drop primary key
ALTER TABLE `cafe` DROP PRIMARY KEY;
ALTER TABLE `cafe_menu` DROP PRIMARY KEY;
ALTER TABLE `cafe_image` DROP PRIMARY KEY;
ALTER TABLE `menu_option` DROP PRIMARY KEY;
ALTER TABLE `option_detail` DROP PRIMARY KEY;
-- 3. change 'id' column name and modify to primary key
ALTER TABLE `cafe`
CHANGE `id` `cafe_id` bigint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '카페 ID';
ALTER TABLE `cafe_menu`
CHANGE `id` `cafe_menu_id` bigint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '카페 메뉴 ID';
ALTER TABLE `cafe_image`
CHANGE `id` `cafe_image_id` bigint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '카페 이미지 ID';
ALTER TABLE `menu_option`
CHANGE `id` `menu_option_id` bigint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '옵션 ID';
ALTER TABLE `option_detail`
CHANGE `id` `option_detail_id` bigint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '옵션 상세 ID';
-- #### RENAME fk column
ALTER TABLE `menu_option`
CHANGE `menu_id` `cafe_menu_id` bigint unsigned NOT NULL COMMENT '연관된 카페 메뉴 ID';
ALTER TABLE `option_detail`
CHANGE `option_id` `menu_option_id` bigint unsigned NOT NULL COMMENT '연관된 옵션 ID';
-- #### Add foreign keys
ALTER TABLE `cafe_menu`
ADD CONSTRAINT `cafemenu_cafeid_fk`
FOREIGN KEY (`cafe_id`)
REFERENCES `cafe` (`cafe_id`);
ALTER TABLE `cafe_image`
ADD CONSTRAINT `cafeimage_cafeid_fk`
FOREIGN KEY (`cafe_id`)
REFERENCES `cafe` (`cafe_id`);
ALTER TABLE `menu_option`
ADD CONSTRAINT `menuoption_cafemenuid_fk`
FOREIGN KEY (`cafe_menu_id`)
REFERENCES `cafe_menu` (`cafe_menu_id`);
ALTER TABLE `option_detail`
ADD CONSTRAINT `optiondetail_menuoptionid_fk`
FOREIGN KEY (`menu_option_id`)
REFERENCES `menu_option` (`menu_option_id`);

View File

@@ -11,7 +11,7 @@ BEGIN
SET count_cafe = (SELECT COUNT(*) FROM `cafe`);
WHILE(i <= count_cafe) DO
SET j = 1;
SET var_cafe_id = (SELECT id FROM `cafe` LIMIT i, 1);
SET var_cafe_id = (SELECT cafe_id FROM `cafe` LIMIT i, 1);
WHILE(j <= 3) DO
INSERT IGNORE INTO `cafe_image` (img_url, created_at, created_by, updated_at, updated_by, cafe_id)
VALUES (CONCAT('test_img_url_', idx_img), now(), 'system', null, null, var_cafe_id);

View File

@@ -8,7 +8,7 @@ BEGIN
DECLARE var_cafe_id binary(16);
WHILE(i <= 4) DO
SET j = 1;
SET var_cafe_id = (SELECT id FROM `cafe` LIMIT i, 1);
SET var_cafe_id = (SELECT cafe_id FROM `cafe` LIMIT i, 1);
WHILE(j <= 10) DO
INSERT IGNORE INTO `cafe_menu` (name, price, created_at, created_by, updated_at, updated_by, cafe_id)
VALUES (CONCAT('커피', j), FLOOR(RAND() * 10 + 1) * 1000, now(), 'system', null, null, var_cafe_id);