반응형
기본 키 이름을 바꾸고 싶을 때
기본 키의 경우 보통 @Column(name = "chat_id")
등으로 Springboot에서 맵핑 가능한데, 문제는 이 코드는 이미 DB에 존재하는 칼럼이랑 맵핑해주는 코드이다. 그래서 이미 존재하는 기본키 칼럼명을 바꾸어주는 코드가 아니다(ddl-auto: create
로 하지 않은 이상). DB에서 수동으로 바꾸어주고, 그 다음에 맵핑을 해주어야 한다.
이때 대부분 @GeneratedValue(strategy = GenerationType.IDENTITY)
코드를 통해서 자동 증가를 기본키에 설정해줬을 것이므로, 이 설정을 그대로 유지하기 위해서는 SQL문 뒤에 AUTO_INCREMENT
를 붙여야 한다.
ALTER TABLE [테이블명] CHANGE COLUMN [원래칼럼명] [바꾸고싶은칼럼명] BIGINT NOT NULL AUTO_INCREMENT;
ENUM 타입 이름을 바꾸고 싶을 때
Springboot에서 설정한 enum
타입이 있다고 할때, enum 타입 이름을 바꾸더라도 ddl-auto: create
가 아니면 코드에서 변경된 타입 이름이 DB에도 반영이 되지 않는다. 수동으로 DB에 SQL을 통해서 타입명을 바꿔줘야 한다. 처음부터 타입명에 오타를 만들지 않는 게 중요하다.
ALTER TABLE [테이블명] CHANGE [ENUM컬럼명] [ENUM컬럼명] ENUM('타입1','타입2', '타입3');
LONGTEXT로 바꾸고 싶을 때
보통 Springboot에서 String으로 설정한 필드는 varchar(255)
로 설정되는 것 같다. 이 경우에는 긴 텍스트를 DB에 저장하려고 하면 에러가 발생한다. LONGTEXT
유형으로 바꿔주면 텍스트가 너무 길어서 저장이 안되는 문제는 거의 없는 것 같다.
ALTER TABLE [테이블명] MODIFY [칼럼명] LONGTEXT;
반응형
'🗄️Backend > SpringBoot' 카테고리의 다른 글
Springboot 서버 에러 Discord Webhook으로 메세지 받아보기(feat. 서버 공격 받은 썰) (0) | 2024.05.29 |
---|---|
만족도 높았던 VSCode / IntelliJ 플러그인 (0) | 2024.05.20 |
[TodayILearn] @ConfigurationProperties란?(feat. @Value 쓰지 말기) (0) | 2024.05.13 |
Spring Boot에서 JavaMailSender와 Gmail로 이메일 전송(@Scheduled로 이메일 전송 스케쥴링 및 @Async로 비동기 처리) (0) | 2024.05.06 |
[TodayILearn] @Scheduled 어노테이션에 대해서 (0) | 2024.05.06 |