Skip to content
Merged
22 changes: 19 additions & 3 deletions CHANGELOG.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,27 @@
{
"metadata": {
"lastUpdated": "2026-04-25T09:05:55Z",
"currentVersion": "0.0.160",
"lastUpdated": "2026-04-25T10:49:51Z",
"currentVersion": "0.0.161",
"projectType": "basic",
"totalReleases": 75
"totalReleases": 76
},
"releases": [
{
"version": "0.0.161",
"project_type": "basic",
"date": "2026-04-25",
"pr_number": 289,
"raw_summary": "## Summary by CodeRabbit\n\n## ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ\n\n* **๋ฒ„๊ทธ ์ˆ˜์ •**\n * ์„œ๋ฒ„ ๋ฐฐํฌ ํ›„ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์˜ค๋ฅ˜๋กœ ์„œ๋ฒ„๊ฐ€ ๊ธฐ๋™๋˜์ง€ ์•Š๋˜ ๋ฌธ์ œ ํ•ด๊ฒฐ",
"parsed_changes": {
"๋ฒ„๊ทธ_์ˆ˜์ •": {
"title": "๋ฒ„๊ทธ ์ˆ˜์ •",
"items": [
"์„œ๋ฒ„ ๋ฐฐํฌ ํ›„ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์˜ค๋ฅ˜๋กœ ์„œ๋ฒ„๊ฐ€ ๊ธฐ๋™๋˜์ง€ ์•Š๋˜ ๋ฌธ์ œ ํ•ด๊ฒฐ"
]
}
},
"parse_method": "markdown"
},
{
"version": "0.0.160",
"project_type": "basic",
Expand Down
13 changes: 11 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
# Changelog

**ํ˜„์žฌ ๋ฒ„์ „:** 0.0.160
**๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ:** 2026-04-25T09:05:55Z
**ํ˜„์žฌ ๋ฒ„์ „:** 0.0.161
**๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ:** 2026-04-25T10:49:51Z

---

## [0.0.161] - 2026-04-25

**PR:** #289

**๋ฒ„๊ทธ ์ˆ˜์ •**
- ์„œ๋ฒ„ ๋ฐฐํฌ ํ›„ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์˜ค๋ฅ˜๋กœ ์„œ๋ฒ„๊ฐ€ ๊ธฐ๋™๋˜์ง€ ์•Š๋˜ ๋ฌธ์ œ ํ•ด๊ฒฐ

---

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
> ๋‹น์‹ ์€ SQLD ์‹œํ—˜๊ณผ ๋™์ผํ•œ Oracle SQL ํ™˜๊ฒฝ์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•˜๋ฉฐ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

<!-- AUTO-VERSION-SECTION: DO NOT EDIT MANUALLY -->
## ์ตœ์‹  ๋ฒ„์ „ : v0.0.158 (2026-04-22)
## ์ตœ์‹  ๋ฒ„์ „ : v0.0.160 (2026-04-25)

[์ „์ฒด ๋ฒ„์ „ ๊ธฐ๋ก ๋ณด๊ธฐ](CHANGELOG.md)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# โ—[๋ฒ„๊ทธ][DB] Flyway ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ V0_0_160 โ€” MySQL ์ „์šฉ ๋ฌธ๋ฒ•์„ PostgreSQL์— ์‚ฌ์šฉํ•ด ์„œ๋ฒ„ ๊ธฐ๋™ ๋ถˆ๊ฐ€

## ๊ฐœ์š”

๋‹‰๋„ค์ž„ ๋ณ€๊ฒฝ ์ด๋ ฅ ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ(`V0_0_160__add_nickname_changed_at_to_member.sql`)์— MySQL ์ „์šฉ ๋ฌธ๋ฒ•(`DATETIME(6)`, ์ธ๋ผ์ธ `COMMENT`)์„ ์‚ฌ์šฉํ•œ ๊ฒฐ๊ณผ, PostgreSQL 14.15 ํ™˜๊ฒฝ์—์„œ SQL ๊ตฌ๋ฌธ ์˜ค๋ฅ˜(`42601`)๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. Flyway๊ฐ€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋„์ค‘ ์‹คํŒจยท๋กค๋ฐฑํ•˜๋ฉด์„œ Spring Boot ์ปจํ…์ŠคํŠธ ์ดˆ๊ธฐํ™”๊ฐ€ ์ค‘๋‹จ๋๊ณ  ์„œ๋ฒ„ ์ „์ฒด๊ฐ€ ๊ธฐ๋™ ๋ถˆ๊ฐ€ ์ƒํƒœ๊ฐ€ ๋๋‹ค. `DATETIME(6)` โ†’ `TIMESTAMP(6)`, ์ธ๋ผ์ธ `COMMENT` โ†’ `COMMENT ON COLUMN` ๋ณ„๋„ ๊ตฌ๋ฌธ์œผ๋กœ ์ˆ˜์ •ํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ๋‹ค.

## ์ฆ์ƒ

- Docker ์ปจํ…Œ์ด๋„ˆ `passql-back` ๊ธฐ๋™ ์ฆ‰์‹œ ์ข…๋ฃŒ
- `org.postgresql.util.PSQLException: ERROR: syntax error at or near "COMMENT"` (SQL State 42601)
- Flyway๊ฐ€ V0_0_155 โ†’ V0_0_160 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํŒจ ํ›„ ๋กค๋ฐฑ
- Spring Boot `entityManagerFactory` ๋นˆ ์ƒ์„ฑ ์‹คํŒจ โ†’ ์„œ๋น„์Šค ์ „์ฒด ๋‹ค์šด

## ์›์ธ ๋ถ„์„

### ๊ทผ๋ณธ ์›์ธ

**๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์šด์˜ ํ™˜๊ฒฝ์˜ DB ์—”์ง„ ๋ถˆ์ผ์น˜ + ์ž‘์„ฑ์ž์˜ MySQL ๋ฌธ๋ฒ• ํ˜ผ์šฉ**

| ํ•ญ๋ชฉ | MySQL ๋ฌธ๋ฒ• (์ž˜๋ชป ์‚ฌ์šฉ) | PostgreSQL ๋ฌธ๋ฒ• (์˜ฌ๋ฐ”๋ฅธ ๋ฌธ๋ฒ•) |
|------|----------------------|----------------------------|
| ๋‚ ์งœ์‹œ๊ฐ„ ํƒ€์ž… | `DATETIME(6)` | `TIMESTAMP(6)` |
| ์ปฌ๋Ÿผ ์ฃผ์„ | `์ปฌ๋Ÿผ ์ •์˜ ๋์— COMMENT '...'` | `COMMENT ON COLUMN ํ…Œ์ด๋ธ”.์ปฌ๋Ÿผ IS '...'` (๋ณ„๋„ ๊ตฌ๋ฌธ) |

### ๋ฐœ์ƒ ๋ฉ”์ปค๋‹ˆ์ฆ˜

1. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ SQL ์ž‘์„ฑ ์‹œ MySQL ๋ฌธ๋ฒ•์ธ `DATETIME(6)` + ์ธ๋ผ์ธ `COMMENT`๋ฅผ ์‚ฌ์šฉ
2. Flyway๊ฐ€ ์šด์˜ ์„œ๋ฒ„์˜ PostgreSQL 14.15์— ํ•ด๋‹น SQL ์‹คํ–‰ ์‹œ๋„
3. PostgreSQL์ด `COMMENT` ํ‚ค์›Œ๋“œ ์œ„์น˜์—์„œ ๊ตฌ๋ฌธ ์˜ค๋ฅ˜(position 86) ๋ฐœ์ƒ
4. Flyway๊ฐ€ ํŠธ๋žœ์žญ์…˜ ๋กค๋ฐฑ ํ›„ `FlywayMigrateException` ๋ฐœ์ƒ
5. Spring Boot `flywayInitializer` ๋นˆ ์ดˆ๊ธฐํ™” ์‹คํŒจ โ†’ `entityManagerFactory` ์ƒ์„ฑ ๋ถˆ๊ฐ€ โ†’ ์„œ๋ฒ„ ๊ธฐ๋™ ์ค‘๋‹จ

### ์™œ ๋กœ์ปฌ์—์„œ ๋ฐœ๊ฒฌ ๋ชปํ–ˆ๋Š”๊ฐ€

- ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด MySQL์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, Flyway ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์—†์ด `hibernate.ddl-auto=create/update`๋กœ๋งŒ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น SQL์ด ์‹คํ–‰๋˜์ง€ ์•Š์•„ ์‚ฌ์ „์— ๋ฐœ๊ฒฌ ๋ถˆ๊ฐ€
- PostgreSQL ์šด์˜ ์„œ๋ฒ„์— ๋ฐฐํฌ๋˜๊ธฐ ์ „๊นŒ์ง€ ์˜ค๋ฅ˜๊ฐ€ ๋“œ๋Ÿฌ๋‚˜์ง€ ์•Š๋Š” ๊ตฌ์กฐ์  ๋ฌธ์ œ

## ๋ณ€๊ฒฝ ์‚ฌํ•ญ

### ์ˆ˜์ • ํŒŒ์ผ

`server/PQL-Web/src/main/resources/db/migration/V0_0_160__add_nickname_changed_at_to_member.sql`

**์ˆ˜์ • ์ „:**
```sql
ALTER TABLE member
ADD COLUMN IF NOT EXISTS nickname_changed_at DATETIME(6) NULL
COMMENT '๋งˆ์ง€๋ง‰ ๋‹‰๋„ค์ž„ ์ง์ ‘ ๋ณ€๊ฒฝ ์‹œ๊ฐ (NULL์ด๋ฉด ์ž๋™์ƒ์„ฑ ์ƒํƒœ, ๋ณ€๊ฒฝ ํ›„ 3์ผ ์ฟจ๋‹ค์šด)';
```

**์ˆ˜์ • ํ›„:**
```sql
ALTER TABLE member
ADD COLUMN IF NOT EXISTS nickname_changed_at TIMESTAMP(6) NULL;

COMMENT ON COLUMN member.nickname_changed_at IS '๋งˆ์ง€๋ง‰ ๋‹‰๋„ค์ž„ ์ง์ ‘ ๋ณ€๊ฒฝ ์‹œ๊ฐ (NULL์ด๋ฉด ์ž๋™์ƒ์„ฑ ์ƒํƒœ, ๋ณ€๊ฒฝ ํ›„ 3์ผ ์ฟจ๋‹ค์šด)';
```

## ์žฌ๋ฐœ ๋ฐฉ์ง€

### ํ•„์ˆ˜ ๊ทœ์น™ ์ถ”๊ฐ€ (์ดํ›„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ ์ž‘์„ฑ ์‹œ)

| ํ•ญ๋ชฉ | MySQL (๊ธˆ์ง€) | PostgreSQL (์‚ฌ์šฉ) |
|------|------------|-----------------|
| ๋‚ ์งœ์‹œ๊ฐ„ ํƒ€์ž… | `DATETIME`, `DATETIME(6)` | `TIMESTAMP`, `TIMESTAMP(6)` |
| ์ปฌ๋Ÿผ ์ฃผ์„ | `COMMENT '...'` (์ธ๋ผ์ธ) | `COMMENT ON COLUMN t.c IS '...'` (๋ณ„๋„ ๊ตฌ๋ฌธ) |
| ์ž๋™์ฆ๊ฐ€ PK | `AUTO_INCREMENT` | `SERIAL` ๋˜๋Š” `GENERATED ALWAYS AS IDENTITY` (๋ณธ ํ”„๋กœ์ ํŠธ๋Š” UUID PK์ด๋ฏ€๋กœ ํ•ด๋‹น ์—†์Œ) |
| ๋ฌธ์ž์—ด ํƒ€์ž… | `VARCHAR` ๋™์ผํ•˜๋‚˜ ๊ธธ์ด ์ œํ•œ ์—†๋Š” ๊ฒฝ์šฐ | `TEXT` ์‚ฌ์šฉ ๊ถŒ์žฅ |
| boolean | `TINYINT(1)` | `BOOLEAN` |

### ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ ๊ถŒ์žฅ

- [ ] ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ SQL์— `DATETIME` ์‚ฌ์šฉ ์—ฌ๋ถ€ ํ™•์ธ โ†’ `TIMESTAMP`๋กœ ๊ต์ฒด
- [ ] ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ SQL์— ์ธ๋ผ์ธ `COMMENT '...'` ์‚ฌ์šฉ ์—ฌ๋ถ€ ํ™•์ธ โ†’ `COMMENT ON COLUMN` ๋ถ„๋ฆฌ
- [ ] SQL์„ psql ๋˜๋Š” PostgreSQL ํ˜ธํ™˜ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์ „ ์‹คํ–‰ ๊ฒ€์ฆ

## ๊ด€๋ จ ์ •๋ณด

- **์ด์Šˆ**: #287 ๋‹‰๋„ค์ž„ ์ง์ ‘ ๋ณ€๊ฒฝ ๊ธฐ๋Šฅ ๊ตฌํ˜„
- **๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฒ„์ „**: V0_0_160
- **DB ์—”์ง„**: PostgreSQL 14.15 (์šด์˜), `jdbc:postgresql://suh-project.synology.me:5430/passql_app`
- **๋ฐœ์ƒ ์‹œ๊ฐ**: 2026-04-25 18:08:44 KST
- **SQL State**: 42601 (syntax_error)
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
ALTER TABLE member
ADD COLUMN IF NOT EXISTS nickname_changed_at DATETIME(6) NULL
COMMENT '๋งˆ์ง€๋ง‰ ๋‹‰๋„ค์ž„ ์ง์ ‘ ๋ณ€๊ฒฝ ์‹œ๊ฐ (NULL์ด๋ฉด ์ž๋™์ƒ์„ฑ ์ƒํƒœ, ๋ณ€๊ฒฝ ํ›„ 3์ผ ์ฟจ๋‹ค์šด)';
ADD COLUMN IF NOT EXISTS nickname_changed_at TIMESTAMP(6) NULL;

COMMENT ON COLUMN member.nickname_changed_at IS '๋งˆ์ง€๋ง‰ ๋‹‰๋„ค์ž„ ์ง์ ‘ ๋ณ€๊ฒฝ ์‹œ๊ฐ (NULL์ด๋ฉด ์ž๋™์ƒ์„ฑ ์ƒํƒœ, ๋ณ€๊ฒฝ ํ›„ 3์ผ ์ฟจ๋‹ค์šด)';
6 changes: 3 additions & 3 deletions version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@
# - ๋ฒ„์ „์€ ํ•ญ์ƒ ๋†’์€ ๋ฒ„์ „์œผ๋กœ ์ž๋™ ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค
# ===================================================================

version: "0.0.160"
version_code: 160 # app build number
version: "0.0.161"
version_code: 161 # app build number
project_type: "basic" # spring, flutter, react, react-native, react-native-expo, node, python, basic
metadata:
last_updated: "2026-04-25 08:51:02"
last_updated: "2026-04-25 10:48:37"
last_updated_by: "Cassiiopeia"
default_branch: "main"
integrated_from: "SUH-DEVOPS-TEMPLATE"
Expand Down
Loading