Merge pull request #12 from beaniejoy/feature/11

DB tables primary key 이름 수정
This commit is contained in:
Hanbin Lee
2022-08-13 17:34:41 +09:00
committed by GitHub
15 changed files with 84 additions and 17 deletions

View File

@@ -14,6 +14,7 @@ class Cafe protected constructor(
) : BaseTimeEntity() {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "cafe_id", nullable = false)
val id: Long = 0L
@Column(name = "name", nullable = false)

View File

@@ -8,6 +8,7 @@ import javax.persistence.*
class CafeImage(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "cafe_image_id", nullable = false)
val id: Long,
@Column(name = "img_url", nullable = false)

View File

@@ -13,6 +13,7 @@ class CafeMenu protected constructor(
) : BaseTimeEntity() {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "cafe_menu_id", nullable = false)
val id: Long = 0L
@Column(name = "name", nullable = false)

View File

@@ -11,17 +11,18 @@ class MenuOption protected constructor(
) : BaseTimeEntity() {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "menu_option_id", nullable = false)
val id: Long = 0L
@Column(name = "title", nullable = false)
val title: String = title
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "menu_id", nullable = false)
@JoinColumn(name = "cafe_menu_id", nullable = false)
var cafeMenu: CafeMenu? = null
protected set
@OneToMany(mappedBy = "menuOption", fetch = FetchType.EAGER, cascade = [CascadeType.ALL])
@OneToMany(mappedBy = "menuOption", fetch = FetchType.LAZY, cascade = [CascadeType.ALL])
val optionDetailList: MutableList<OptionDetail> = arrayListOf()
companion object {

View File

@@ -12,6 +12,7 @@ class OptionDetail protected constructor(
) : BaseTimeEntity() {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "option_detail_id", nullable = false)
val id: Long = 0L
@Column(name = "name", nullable = false)
@@ -20,8 +21,8 @@ class OptionDetail protected constructor(
@Column(name = "extra_price", nullable = false)
val extraPrice: BigDecimal = extraPrice
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "option_id", nullable = false)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "menu_option_id", nullable = false)
var menuOption: MenuOption? = null
protected set

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);