From 10a9334cebc7023898b8b7d5f09dac76a4a2a3d6 Mon Sep 17 00:00:00 2001 From: Seungwan Yoo Date: Fri, 26 Jun 2026 14:12:33 +0900 Subject: [PATCH 1/3] =?UTF-8?q?chore:=20[ALT-268]=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=20=EC=BB=AC=EB=9F=BC=20length=20=EC=A0=95=EC=9D=98?= =?UTF-8?q?=EB=A5=BC=20DB=20=EC=8A=A4=ED=82=A4=EB=A7=88=EC=99=80=20?= =?UTF-8?q?=EC=9D=BC=EC=B9=98=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - enum 필드 length 추가 (23건): User/EmailSendLog/Notification/Reputation 등 - String 필드 length 추가 (12건): File/ReputationSummary/SubstituteRequest 등 - 명시 length 정정 (3건): User.contact/Workspace.contact 13→11, ReputationRequest.requestType 20→24 - varchar↔text 일치화 (2건): UserCertificate.type/ReputationKeywordMap.description 총 40건의 엔티티 컬럼 length 정의 변경, 22개 파일. DDL_AUTO=validate에서 런타임 무영향. DB 마이그레이션 별도 처리. --- .../alter/domain/email/entity/EmailSendLog.java | 2 +- .../dreamteam/alter/domain/file/entity/File.java | 16 ++++++++-------- .../domain/notification/entity/Notification.java | 2 +- .../posting/entity/PostingApplication.java | 2 +- .../domain/reputation/entity/Reputation.java | 4 ++-- .../reputation/entity/ReputationKeywordMap.java | 2 +- .../reputation/entity/ReputationRequest.java | 2 +- .../reputation/entity/ReputationSummary.java | 4 ++-- .../alter/domain/user/entity/ManagerUser.java | 2 +- .../dreamteam/alter/domain/user/entity/User.java | 6 +++--- .../domain/user/entity/UserCertificate.java | 2 +- .../workspace/entity/BusinessInvitation.java | 2 +- .../workspace/entity/BusinessJoinRequest.java | 2 +- .../workspace/entity/SubstituteRequest.java | 10 +++++----- .../entity/SubstituteRequestTarget.java | 4 ++-- .../alter/domain/workspace/entity/Workspace.java | 2 +- .../domain/workspace/entity/WorkspaceImage.java | 2 +- .../entity/WorkspaceRequestComment.java | 2 +- .../workspace/entity/WorkspaceRequestImage.java | 2 +- .../domain/workspace/entity/WorkspaceShift.java | 2 +- .../domain/workspace/entity/WorkspaceWorker.java | 2 +- .../entity/WorkspaceWorkerSchedule.java | 6 +++--- 22 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/dreamteam/alter/domain/email/entity/EmailSendLog.java b/src/main/java/com/dreamteam/alter/domain/email/entity/EmailSendLog.java index 84f36aab..d62f0f4d 100644 --- a/src/main/java/com/dreamteam/alter/domain/email/entity/EmailSendLog.java +++ b/src/main/java/com/dreamteam/alter/domain/email/entity/EmailSendLog.java @@ -30,7 +30,7 @@ public class EmailSendLog { private String email; @Enumerated(EnumType.STRING) - @Column(name = "status", nullable = false) + @Column(name = "status", length = 20, nullable = false) private EmailSendStatus status; @CreatedDate diff --git a/src/main/java/com/dreamteam/alter/domain/file/entity/File.java b/src/main/java/com/dreamteam/alter/domain/file/entity/File.java index b13c1dec..88556236 100644 --- a/src/main/java/com/dreamteam/alter/domain/file/entity/File.java +++ b/src/main/java/com/dreamteam/alter/domain/file/entity/File.java @@ -26,37 +26,37 @@ public class File { @Id - @Column(name = "id", nullable = false, unique = true) + @Column(name = "id", length = 36, nullable = false, unique = true) private String id; @Enumerated(EnumType.STRING) - @Column(name = "target_type", nullable = false) + @Column(name = "target_type", length = 40, nullable = false) private FileTargetType targetType; - @Column(name = "target_id") + @Column(name = "target_id", length = 36) private String targetId; @Column(name = "original_file_name", nullable = false) private String originalFileName; - @Column(name = "stored_key", nullable = false, unique = true) + @Column(name = "stored_key", length = 512, nullable = false, unique = true) private String storedKey; - @Column(name = "file_url") + @Column(name = "file_url", length = 1024) private String fileUrl; - @Column(name = "content_type", nullable = false) + @Column(name = "content_type", length = 100, nullable = false) private String contentType; @Column(name = "file_size", nullable = false) private Long fileSize; @Enumerated(EnumType.STRING) - @Column(name = "bucket_type", nullable = false) + @Column(name = "bucket_type", length = 10, nullable = false) private BucketType bucketType; @Enumerated(EnumType.STRING) - @Column(nullable = false) + @Column(nullable = false, length = 10) private FileStatus status; @Column(name = "uploaded_by", nullable = false) diff --git a/src/main/java/com/dreamteam/alter/domain/notification/entity/Notification.java b/src/main/java/com/dreamteam/alter/domain/notification/entity/Notification.java index f4051329..a6764968 100644 --- a/src/main/java/com/dreamteam/alter/domain/notification/entity/Notification.java +++ b/src/main/java/com/dreamteam/alter/domain/notification/entity/Notification.java @@ -30,7 +30,7 @@ public class Notification { private User targetUser; @Enumerated(EnumType.STRING) - @Column(name = "scope", nullable = false) + @Column(name = "scope", length = 20, nullable = false) private TokenScope scope; @Enumerated(EnumType.STRING) diff --git a/src/main/java/com/dreamteam/alter/domain/posting/entity/PostingApplication.java b/src/main/java/com/dreamteam/alter/domain/posting/entity/PostingApplication.java index 4b3dc7ae..b4ae062a 100644 --- a/src/main/java/com/dreamteam/alter/domain/posting/entity/PostingApplication.java +++ b/src/main/java/com/dreamteam/alter/domain/posting/entity/PostingApplication.java @@ -41,7 +41,7 @@ public class PostingApplication { @Enumerated(EnumType.STRING) @SQLRestriction("status != 'DELETED'") - @Column(name = "status", nullable = false) + @Column(name = "status", length = 50, nullable = false) private PostingApplicationStatus status; @CreatedDate diff --git a/src/main/java/com/dreamteam/alter/domain/reputation/entity/Reputation.java b/src/main/java/com/dreamteam/alter/domain/reputation/entity/Reputation.java index 99b34500..b78a2c34 100644 --- a/src/main/java/com/dreamteam/alter/domain/reputation/entity/Reputation.java +++ b/src/main/java/com/dreamteam/alter/domain/reputation/entity/Reputation.java @@ -34,14 +34,14 @@ public class Reputation { @ManyToOne(fetch = FetchType.LAZY) private ReputationRequest reputationRequest; - @Column(name = "writer_type", nullable = false) + @Column(name = "writer_type", length = 20, nullable = false) @Enumerated(EnumType.STRING) private ReputationType writerType; @Column(name = "writer_id", nullable = false) private Long writerId; - @Column(name = "target_type", nullable = false) + @Column(name = "target_type", length = 20, nullable = false) @Enumerated(EnumType.STRING) private ReputationType targetType; diff --git a/src/main/java/com/dreamteam/alter/domain/reputation/entity/ReputationKeywordMap.java b/src/main/java/com/dreamteam/alter/domain/reputation/entity/ReputationKeywordMap.java index 2dace70e..a5abb874 100644 --- a/src/main/java/com/dreamteam/alter/domain/reputation/entity/ReputationKeywordMap.java +++ b/src/main/java/com/dreamteam/alter/domain/reputation/entity/ReputationKeywordMap.java @@ -38,7 +38,7 @@ public class ReputationKeywordMap { @ManyToOne(fetch = FetchType.LAZY, optional = false) private ReputationKeyword keyword; - @Column(name = "description") + @Column(name = "description", length = 128) private String description; @CreatedDate diff --git a/src/main/java/com/dreamteam/alter/domain/reputation/entity/ReputationRequest.java b/src/main/java/com/dreamteam/alter/domain/reputation/entity/ReputationRequest.java index dfdff29d..d0f24503 100644 --- a/src/main/java/com/dreamteam/alter/domain/reputation/entity/ReputationRequest.java +++ b/src/main/java/com/dreamteam/alter/domain/reputation/entity/ReputationRequest.java @@ -34,7 +34,7 @@ public class ReputationRequest { private Workspace workspace; @Enumerated(EnumType.STRING) - @Column(name = "request_type", length = 20, nullable = false) + @Column(name = "request_type", length = 24, nullable = false) private ReputationRequestType requestType; @Column(name = "requester_type", length = 20, nullable = false) diff --git a/src/main/java/com/dreamteam/alter/domain/reputation/entity/ReputationSummary.java b/src/main/java/com/dreamteam/alter/domain/reputation/entity/ReputationSummary.java index bba66fb4..536ccf2b 100644 --- a/src/main/java/com/dreamteam/alter/domain/reputation/entity/ReputationSummary.java +++ b/src/main/java/com/dreamteam/alter/domain/reputation/entity/ReputationSummary.java @@ -38,7 +38,7 @@ public class ReputationSummary { private Long id; @Enumerated(EnumType.STRING) - @Column(name = COLUMN_TARGET_TYPE, nullable = false) + @Column(name = COLUMN_TARGET_TYPE, length = 20, nullable = false) private ReputationType targetType; @Column(name = COLUMN_TARGET_ID, nullable = false) @@ -51,7 +51,7 @@ public class ReputationSummary { @Column(name = COLUMN_TOP_KEYWORDS, columnDefinition = "jsonb") private List topKeywords; - @Column(name = COLUMN_SUMMARY_DESCRIPTION) + @Column(name = COLUMN_SUMMARY_DESCRIPTION, length = 500) private String summaryDescription; @CreatedDate diff --git a/src/main/java/com/dreamteam/alter/domain/user/entity/ManagerUser.java b/src/main/java/com/dreamteam/alter/domain/user/entity/ManagerUser.java index 221608ac..0b0d1db5 100644 --- a/src/main/java/com/dreamteam/alter/domain/user/entity/ManagerUser.java +++ b/src/main/java/com/dreamteam/alter/domain/user/entity/ManagerUser.java @@ -31,7 +31,7 @@ public class ManagerUser { private User user; @Enumerated(EnumType.STRING) - @Column(name = "status", nullable = false) + @Column(name = "status", length = 50, nullable = false) private ManagerUserStatus status; @CreatedDate diff --git a/src/main/java/com/dreamteam/alter/domain/user/entity/User.java b/src/main/java/com/dreamteam/alter/domain/user/entity/User.java index f622a3f9..a174ba9d 100644 --- a/src/main/java/com/dreamteam/alter/domain/user/entity/User.java +++ b/src/main/java/com/dreamteam/alter/domain/user/entity/User.java @@ -41,18 +41,18 @@ public class User { @Column(name = "nickname", length = 64, nullable = false, unique = true) private String nickname; - @Column(name = "contact", length = 13, nullable = false) + @Column(name = "contact", length = 11, nullable = false) private String contact; @Column(name = "birthday", length = 8, nullable = false) private String birthday; @Enumerated(EnumType.STRING) - @Column(name = "gender", nullable = false) + @Column(name = "gender", length = 20, nullable = false) private UserGender gender; @Enumerated(EnumType.STRING) - @Column(name = "role", nullable = false) + @Column(name = "role", length = 20, nullable = false) private UserRole role; @Enumerated(EnumType.STRING) diff --git a/src/main/java/com/dreamteam/alter/domain/user/entity/UserCertificate.java b/src/main/java/com/dreamteam/alter/domain/user/entity/UserCertificate.java index 92b6c3b8..2c5f3c2e 100644 --- a/src/main/java/com/dreamteam/alter/domain/user/entity/UserCertificate.java +++ b/src/main/java/com/dreamteam/alter/domain/user/entity/UserCertificate.java @@ -33,7 +33,7 @@ public class UserCertificate { private User user; @Enumerated(EnumType.STRING) - @Column(name = "type", nullable = false) + @Column(name = "type", length = 24, nullable = false) private CertificateType type; @Column(name = "certificate_name", length = 255, nullable = false) diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/entity/BusinessInvitation.java b/src/main/java/com/dreamteam/alter/domain/workspace/entity/BusinessInvitation.java index eb8312fb..c9ea9610 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/entity/BusinessInvitation.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/entity/BusinessInvitation.java @@ -39,7 +39,7 @@ public class BusinessInvitation { private ManagerUser invitedBy; @Enumerated(EnumType.STRING) - @Column(name = "status", nullable = false) + @Column(name = "status", length = 20, nullable = false) private BusinessInvitationStatus status; @Column(name = "expires_at", nullable = false) diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/entity/BusinessJoinRequest.java b/src/main/java/com/dreamteam/alter/domain/workspace/entity/BusinessJoinRequest.java index baec2441..d6e935bf 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/entity/BusinessJoinRequest.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/entity/BusinessJoinRequest.java @@ -34,7 +34,7 @@ public class BusinessJoinRequest { private User user; @Enumerated(EnumType.STRING) - @Column(name = "status", nullable = false) + @Column(name = "status", length = 20, nullable = false) private BusinessJoinRequestStatus status; @CreatedDate diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/entity/SubstituteRequest.java b/src/main/java/com/dreamteam/alter/domain/workspace/entity/SubstituteRequest.java index c39a5eb9..885af871 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/entity/SubstituteRequest.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/entity/SubstituteRequest.java @@ -39,7 +39,7 @@ public class SubstituteRequest { private Long requesterId; @Enumerated(EnumType.STRING) - @Column(name = "request_type", nullable = false) + @Column(name = "request_type", length = 20, nullable = false) private SubstituteRequestType requestType; @OneToMany(mappedBy = "substituteRequest", cascade = CascadeType.ALL, fetch = FetchType.LAZY) @@ -52,16 +52,16 @@ public class SubstituteRequest { private Long approverId; @Enumerated(EnumType.STRING) - @Column(name = "status", nullable = false) + @Column(name = "status", length = 20, nullable = false) private SubstituteRequestStatus status; - @Column(name = "request_reason") + @Column(name = "request_reason", length = 500) private String requestReason; - @Column(name = "approver_rejection_reason") + @Column(name = "approver_rejection_reason", length = 500) private String approverRejectionReason; - @Column(name = "approval_comment") + @Column(name = "approval_comment", length = 500) private String approvalComment; @Column(name = "accepted_at") diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/entity/SubstituteRequestTarget.java b/src/main/java/com/dreamteam/alter/domain/workspace/entity/SubstituteRequestTarget.java index 764f8f3f..13b4ed24 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/entity/SubstituteRequestTarget.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/entity/SubstituteRequestTarget.java @@ -30,10 +30,10 @@ public class SubstituteRequestTarget { private Long targetWorkerId; @Enumerated(EnumType.STRING) - @Column(name = "status", nullable = false) + @Column(name = "status", length = 20, nullable = false) private SubstituteRequestTargetStatus status; - @Column(name = "rejection_reason") + @Column(name = "rejection_reason", length = 500) private String rejectionReason; @Column(name = "responded_at") diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/entity/Workspace.java b/src/main/java/com/dreamteam/alter/domain/workspace/entity/Workspace.java index cf05264c..fbf10a2d 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/entity/Workspace.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/entity/Workspace.java @@ -39,7 +39,7 @@ public class Workspace { @Column(name = "business_type", length = 128, nullable = false) private String businessType; // Enum 으로 정의 고려 - @Column(name = "contact", length = 13, nullable = false) + @Column(name = "contact", length = 11, nullable = false) private String contact; @Column(name = "description", length = Integer.MAX_VALUE, nullable = true) diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceImage.java b/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceImage.java index 60970ad7..352aa7a1 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceImage.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceImage.java @@ -42,7 +42,7 @@ public class WorkspaceImage { @ManyToOne(fetch = FetchType.LAZY) private Workspace workspace; - @Column(name = "file_id", nullable = false) + @Column(name = "file_id", length = 36, nullable = false) private String fileId; @Column(name = "sort_order", nullable = false) diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceRequestComment.java b/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceRequestComment.java index fc87f201..a40c6f94 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceRequestComment.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceRequestComment.java @@ -49,7 +49,7 @@ public class WorkspaceRequestComment { private User user; @Enumerated(EnumType.STRING) - @Column(name = "comment_owner", nullable = false) + @Column(name = "comment_owner", length = 50, nullable = false) private CommentOwner commentOwner; @Column(name = "comment", nullable = false) diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceRequestImage.java b/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceRequestImage.java index c740566b..646b77cc 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceRequestImage.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceRequestImage.java @@ -39,7 +39,7 @@ public class WorkspaceRequestImage { @ManyToOne(fetch = FetchType.LAZY) private WorkspaceRequest workspaceRequest; - @Column(name = "file_id", nullable = false) + @Column(name = "file_id", length = 36, nullable = false) private String fileId; @Column(name = "sort_order", nullable = false) diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceShift.java b/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceShift.java index 0b010eee..01d8f583 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceShift.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceShift.java @@ -36,7 +36,7 @@ public class WorkspaceShift { private String position; @Enumerated(EnumType.STRING) - @Column(name = "status", nullable = false) + @Column(name = "status", length = 20, nullable = false) private WorkspaceShiftStatus status; @JoinColumn(name = "worker_id") diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorker.java b/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorker.java index f0004377..b86f768f 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorker.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorker.java @@ -35,7 +35,7 @@ public class WorkspaceWorker { private User user; @Enumerated(EnumType.STRING) - @Column(name = "status", nullable = false) + @Column(name = "status", length = 20, nullable = false) private WorkspaceWorkerStatus status; @Builder.Default diff --git a/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorkerSchedule.java b/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorkerSchedule.java index 574b76c5..31f11835 100644 --- a/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorkerSchedule.java +++ b/src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorkerSchedule.java @@ -48,21 +48,21 @@ public class WorkspaceWorkerSchedule { private WorkspaceWorker workspaceWorker; @Enumerated(EnumType.STRING) - @Column(name = "start_day_of_week", nullable = false) + @Column(name = "start_day_of_week", length = 16, nullable = false) private DayOfWeek startDayOfWeek; @Column(name = "start_time", nullable = false) private LocalTime startTime; @Enumerated(EnumType.STRING) - @Column(name = "end_day_of_week", nullable = false) + @Column(name = "end_day_of_week", length = 16, nullable = false) private DayOfWeek endDayOfWeek; @Column(name = "end_time", nullable = false) private LocalTime endTime; @Enumerated(EnumType.STRING) - @Column(name = "status", nullable = false) + @Column(name = "status", length = 32, nullable = false) private WorkspaceWorkerScheduleStatus status; @CreatedDate From 78ec92f746453098bc6a6adae268d31002a611d4 Mon Sep 17 00:00:00 2001 From: Seungwan Yoo Date: Fri, 26 Jun 2026 14:12:39 +0900 Subject: [PATCH 2/3] =?UTF-8?q?chore:=20[ALT-268]=20DB=20=EC=BB=AC?= =?UTF-8?q?=EB=9F=BC=20=ED=83=80=EC=9E=85/=EA=B8=B8=EC=9D=B4=20=EC=9D=BC?= =?UTF-8?q?=EC=B9=98=ED=99=94=20Flyway=20=EB=A7=88=EC=9D=B4=EA=B7=B8?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=85=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - V2__align_entity_db_column_lengths.sql 신규 - email_send_logs.email varchar(255) → varchar(100) - user_certificates.type text → varchar(24) - reputation_keyword_map.description text → varchar(128) baseline-version: 1 기준, V2부터 적용. 로컬 DB에서 사전 검증 완료 (초과 데이터 없음). --- .../migration/V2__align_entity_db_column_lengths.sql | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/main/resources/db/migration/V2__align_entity_db_column_lengths.sql diff --git a/src/main/resources/db/migration/V2__align_entity_db_column_lengths.sql b/src/main/resources/db/migration/V2__align_entity_db_column_lengths.sql new file mode 100644 index 00000000..45e8453e --- /dev/null +++ b/src/main/resources/db/migration/V2__align_entity_db_column_lengths.sql @@ -0,0 +1,11 @@ +-- C-2: email_send_logs.email varchar(255) -> varchar(100) +ALTER TABLE email_send_logs + ALTER COLUMN email TYPE varchar(100); + +-- D-1: user_certificates.type text -> varchar(24) +ALTER TABLE user_certificates + ALTER COLUMN type TYPE varchar(24); + +-- D-2: reputation_keyword_map.description text -> varchar(128) +ALTER TABLE reputation_keyword_map + ALTER COLUMN description TYPE varchar(128); From 311d82ddf0d5313d5fe563e09b40f7b655f18e6b Mon Sep 17 00:00:00 2001 From: Seungwan Yoo Date: Mon, 29 Jun 2026 10:57:18 +0900 Subject: [PATCH 3/3] =?UTF-8?q?chore:=20[ALT-268]=20User=20=ED=83=88?= =?UTF-8?q?=ED=87=B4=20=EC=9D=B5=EB=AA=85=ED=99=94=20=EC=BB=AC=EB=9F=BC=20?= =?UTF-8?q?=ED=8F=AD=20=EC=A0=95=ED=95=A9=ED=99=94=20(name,=20contact=20?= =?UTF-8?q?=E2=86=92=20varchar(30))?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit withdraw()에서 id + "_탈퇴" 익명화 값을 안전하게 담기 위해: - User.name: varchar(12) → varchar(30) - User.contact: varchar(11) → varchar(30) - Flyway 마이그레이션 V3 추가 장기적 암호화 저장 도입 시의 암호문 길이도 함께 고려. --- .../java/com/dreamteam/alter/domain/user/entity/User.java | 5 +++-- .../db/migration/V3__widen_user_anonymize_columns.sql | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/db/migration/V3__widen_user_anonymize_columns.sql diff --git a/src/main/java/com/dreamteam/alter/domain/user/entity/User.java b/src/main/java/com/dreamteam/alter/domain/user/entity/User.java index a174ba9d..a8e3e47c 100644 --- a/src/main/java/com/dreamteam/alter/domain/user/entity/User.java +++ b/src/main/java/com/dreamteam/alter/domain/user/entity/User.java @@ -35,13 +35,14 @@ public class User { @Column(name = "password", length = 255, nullable = true) private String password; - @Column(name = "name", length = 12, nullable = false) + @Column(name = "name", length = 30, nullable = false) private String name; @Column(name = "nickname", length = 64, nullable = false, unique = true) private String nickname; - @Column(name = "contact", length = 11, nullable = false) + // length 30: withdraw() 익명화 값(id + "_탈퇴") 수용 (전화번호 자체는 11자) + @Column(name = "contact", length = 30, nullable = false) private String contact; @Column(name = "birthday", length = 8, nullable = false) diff --git a/src/main/resources/db/migration/V3__widen_user_anonymize_columns.sql b/src/main/resources/db/migration/V3__widen_user_anonymize_columns.sql new file mode 100644 index 00000000..1dc75a77 --- /dev/null +++ b/src/main/resources/db/migration/V3__widen_user_anonymize_columns.sql @@ -0,0 +1,4 @@ +-- 탈퇴 익명화(id + "_탈퇴") 수용을 위해 name/contact 폭 확대. +-- varchar 확대는 PostgreSQL 카탈로그 메타데이터 변경(테이블 재작성 없음, 락 순간적). +ALTER TABLE users ALTER COLUMN name TYPE varchar(30); +ALTER TABLE users ALTER COLUMN contact TYPE varchar(30);