pnpm migrate ๋ช
๋ น์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ณ๊ฒฝ์ ์์ ํ๊ฒ ๊ด๋ฆฌํฉ๋๋ค. Entity ์ ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
์ ์์ฑํ๊ณ , ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ผ๊ด๋๊ฒ ์ ์ฉํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ๊ฐ๋
๋ง์ด๊ทธ๋ ์ด์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ณ๊ฒฝ์ ๋ฒ์ ๊ด๋ฆฌํ๋ ์์คํ ์ ๋๋ค:- Entity ๊ธฐ๋ฐ: Entity ์ ์์์ ์๋์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ์์ฑ
- ์์ฐจ ์คํ: ์์ฑ ์์๋๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฉ
- ๋ค์ค DB ์ง์: ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์์ ๊ด๋ฆฌ
- ์๋ ๊ฐ์ง: Entity ๋ณ๊ฒฝ์ฌํญ ์๋ ๊ฐ์ง ๋ฐ ์ฝ๋ ์์ฑ
๋ช ๋ น์ด
status - ์ํ ํ์ธ
ํ์ฌ ๋ง์ด๊ทธ๋ ์ด์ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.โ Up to date: ๋ชจ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฉ ์๋ฃโ N pending: N๊ฐ์ ๋ฏธ์ ์ฉ ๋ง์ด๊ทธ๋ ์ด์ โ Error: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์คํจ
run - ๋ง์ด๊ทธ๋ ์ด์ ์คํ
๋๊ธฐ ์ค์ธ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ชจ๋ ์ ์ฉํฉ๋๋ค.- Entity ๋ณ๊ฒฝ์ฌํญ์ ๊ฐ์ง
- ๋ง์ด๊ทธ๋ ์ด์ ์ฝ๋ ์๋ ์์ฑ
- ๋ชจ๋ ๋์ DB์ ์์ฐจ ์ ์ฉ
Sonamu๋ Entity ์ ์๋ฅผ ๋ถ์ํ์ฌ ํ์ํ ๋ง์ด๊ทธ๋ ์ด์
์ ์๋์ผ๋ก ์์ฑํฉ๋๋ค. ์๋์ผ๋ก
๋ง์ด๊ทธ๋ ์ด์
ํ์ผ์ ์์ฑํ ํ์๊ฐ ์์ต๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ์์ฑ
์๋ ์์ฑ
Entity๋ฅผ ์์ ํ๋ฉด Sonamu๊ฐ ์๋์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ฑํฉ๋๋ค.user.entity.ts
๋ง์ด๊ทธ๋ ์ด์ ํ์ผ
์์ฑ๋ ๋ง์ด๊ทธ๋ ์ด์ ํ์ผ์src/migrations/ ๋๋ ํ ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค.
src/migrations/20240116_103045_add_phone_to_users.ts
up(): ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฉ (ํ ์ด๋ธ ์์ฑ, ์ปฌ๋ผ ์ถ๊ฐ ๋ฑ)down(): ๋ง์ด๊ทธ๋ ์ด์ ๋กค๋ฐฑ (๋ณ๊ฒฝ์ฌํญ ๋๋๋ฆฌ๊ธฐ)
์ง์ํ๋ ๋ณ๊ฒฝ์ฌํญ
Sonamu๊ฐ ์๋์ผ๋ก ๊ฐ์งํ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ฑํ๋ ๋ณ๊ฒฝ์ฌํญ:๋ค์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ
Sonamu๋ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ฑ
sonamu.config.ts
- ๊ธฐ๋ณธ๊ฐ์ ํ์ฌ
NODE_ENVpreset development,staging,production,test๊ฐ์ ๋ช ์์ preset- ์ฝ๊ธฐ ์ ์ฉ preset์ ์ ์ธ
_slave๊ฐ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
์ผ๊ด ์ ์ฉ
์ค์ ์ํฌํ๋ก์ฐ
1. Entity ๋ณ๊ฒฝ
user.entity.ts
2. ์ํ ํ์ธ
3. ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฉ
4. ์ฝ๋ ์ ๋ฐ์ดํธ
user.model.ts
๊ณ ๊ธ ์ฌ์ฉ๋ฒ (ํ๋ก๊ทธ๋๋งคํฑ)
CLI ๋ช ๋ น์ด๋ก ์ ๊ณต๋์ง ์๋ ๊ณ ๊ธ ๊ธฐ๋ฅ์Migrator ํด๋์ค๋ฅผ ์ง์ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์์ต๋๋ค.
Migrator ํด๋์ค ์ฌ์ฉ
src/scripts/migration-tools.ts
๋กค๋ฐฑ ์คํฌ๋ฆฝํธ
src/scripts/rollback-migration.ts
์ฌ์ฉ ๊ฐ๋ฅํ ์ก์
Migrator.runAction() ๋ฉ์๋๊ฐ ์ง์ํ๋ ์ก์
:
๋ฌธ์ ํด๊ฒฐ
๋ง์ด๊ทธ๋ ์ด์ ์ถฉ๋
๋ฌธ์ : ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ๋์์ ๋ง์ด๊ทธ๋ ์ด์ ์์ฑ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์คํจ
๋ฌธ์ : DB ์ฐ๊ฒฐ ์คํจ๋ง์ด๊ทธ๋ ์ด์ ์์ ์ค๋ฅ
๋ฌธ์ : ์๋ชป๋ ์์๋ก ์ ์ฉ๋จ๋ฒ ์คํธ ํ๋ํฐ์ค
1. ์์ฃผ ์ ์ฉํ๊ธฐ
2. ํ๋ก๋์ ์ ํ ์คํธ
3. ๋ฐฑ์ ํ์
4. ๋กค๋ฐฑ ๊ฐ๋ฅ์ฑ ๊ณ ๋ ค
5. Git์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ
๋ค์ ๋จ๊ณ
fixture
ํ
์คํธ ๋ฐ์ดํฐ ๊ด๋ฆฌํ๊ธฐ
Entity
Entity ์ ์ ์์ธํ ์์๋ณด๊ธฐ