๋กค๋ฐฑ ์๋จ
Sonamu UI
Migrations ํญ์ ๋กค๋ฐฑ ๋ฒํผ ์ต๊ทผ batch ๋กค๋ฐฑ
runAction()
Migrator API ์ง์ ํธ์ถ ์คํฌ๋ฆฝํธ/์๋ํ์ฉ
migrate status
๋กค๋ฐฑ ์ ์ํ ํ์ธ batch ํ์ธ
down ํจ์
Migration ํ์ผ์ ์ญ์์
๋กค๋ฐฑ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์
๊ธฐ๋ณธ ๋กค๋ฐฑ
Sonamu UI์์ ๋กค๋ฐฑ
- API ๊ฐ๋ฐ ์๋ฒ๋ฅผ ์คํํฉ๋๋ค(
pnpm dev). http://localhost:34900/sonamu-ui์ Migrations ํญ์ ์ฝ๋๋ค.- ๋กค๋ฐฑํ DB ์ปค๋ฅ์ ์ ์ ํํฉ๋๋ค.
- ๋กค๋ฐฑ ๋ฒํผ์ ํด๋ฆญํ๊ณ ํ์ธ ๋ชจ๋ฌ์์ ์คํํฉ๋๋ค.
๋กค๋ฐฑ์ ์ ํํ DB์ ๊ฐ์ฅ ์ต๊ทผ batch์ ์ํ ๋ชจ๋ Migration์ ๋๋๋ฆฝ๋๋ค.
์คํฌ๋ฆฝํธ์์ ๋กค๋ฐฑ
CI๋ ์ด์ ์คํฌ๋ฆฝํธ์์๋Migrator๋ฅผ ์ง์ ํธ์ถํฉ๋๋ค.
src/scripts/rollback-migration.ts
ํ์ฌ ์ํ ํ์ธ
๋กค๋ฐฑ ๋ฐฉ์
Batch ๋จ์ ๋กค๋ฐฑ
๋กค๋ฐฑ์ ๋จ์๋ batch์ ๋๋ค. ํ ๋ฒ์ ๋กค๋ฐฑ์ ๊ฐ์ฅ ์ต๊ทผ batch์ ์ํ Migration์ ๋ชจ๋ ๋๋๋ฆฝ๋๋ค.์ฌ๋ฌ batch ๋๋๋ฆฌ๊ธฐ
Migration ํ๋๋ง ๊ณจ๋ผ์ ๋๋๋ฆฌ๊ฑฐ๋, ์ฌ๋ฌ batch๋ฅผ ํ ๋ฒ์ ๋๋๋ฆฌ๋ ๊ธฐ๋ฅ์ ์ ๊ณต๋์ง ์์ต๋๋ค. ๋ ๊ณผ๊ฑฐ๋ก ๋๋๋ฆฌ๋ ค๋ฉด ๋กค๋ฐฑ์ batch ์๋งํผ ๋ฐ๋ณต ์คํํ๊ณ , ๊ฐ ํ์ฐจ ์ฌ์ด์pnpm sonamu migrate status๋ก ์ํ๋ฅผ ํ์ธํ์ธ์.
down ํจ์
๊ธฐ๋ณธ ๊ตฌ์กฐ
CREATE TABLE ๋กค๋ฐฑ
ALTER TABLE ๋กค๋ฐฑ
FOREIGN KEY ๋กค๋ฐฑ
๋กค๋ฐฑ ์๋๋ฆฌ์ค
์๋๋ฆฌ์ค 1: ์๋ชป๋ Migration ์์
์๋๋ฆฌ์ค 2: ํ๋ก๋์ ๊ธด๊ธ ๋กค๋ฐฑ
ํ๋ก๋์ DB๋ Sonamu UI๊ฐ ์คํ๋๋ ํ๊ฒฝ์์ ์ ๊ทผํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฏ๋ก, ๋กค๋ฐฑ ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก๋์ ํ๊ฒฝ ๋ณ์๋ก ์คํํฉ๋๋ค.NODE_ENV๊ฐ local์ด ์๋๋ฉด ํด๋น ํ๊ฒฝ๊ณผ ์ด๋ฆ์ด ๊ฐ์ DB ์ปค๋ฅ์
๋ง ์์
๋์์ผ๋ก ํ์ฉ๋ฉ๋๋ค. ๋ค๋ฅธ
๋์์ ๋๊ธฐ๋ฉด ์๋ฌ๋ก ์ฐจ๋จ๋ฉ๋๋ค.์๋๋ฆฌ์ค 3: ๋ถ๋ถ ๋กค๋ฐฑ
๋ฐ์ดํฐ ๋ณด์กด
๋กค๋ฐฑ ์ ๋ฐ์ดํฐ ์์ค
์์ ํ ๋กค๋ฐฑ ํจํด
๋กค๋ฐฑ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ
๋ฐ์ดํฐ ๋ณํ
๋ฐ์ดํฐ ์ญ์
๋กค๋ฐฑ ์ ๋ต
1. ๋ฐฑ์ ์ฐ์
2. ์คํ ์ด์ง ํ ์คํธ
3. ์ ์ง์ ๋กค๋ฐฑ
์๋ฌ ์ฒ๋ฆฌ
๋กค๋ฐฑ ์คํจ
๋กค๋ฐฑ ์ค down ํจ์๊ฐ ์คํจํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋ฌ:- Migration์ด ๋ถ๋ถ์ ์ผ๋ก๋ง ์ ์ฉ๋จ
- down ํจ์๊ฐ up๊ณผ ์ผ์นํ์ง ์์
- ์๋์ผ๋ก DB ๋ณ๊ฒฝํจ
- DB ์ํ ์๋ ํ์ธ
- knex_migrations ํ ์ด๋ธ ์์
- down ํจ์ ์์ ํ ์ฌ์๋
๊ฐ์ ๋กค๋ฐฑ
๋กค๋ฐฑ ๋ก๊ทธ
์คํ ๊ฒฐ๊ณผ ํ์ธ
runAction("rollback", ...)์ ๋์ ์ปค๋ฅ์
๋ณ๋ก batch ๋ฒํธ์ ๋กค๋ฐฑ๋ ํ์ผ ๋ชฉ๋ก์ ๋ฐํํฉ๋๋ค.
๋กค๋ฐฑ ๊ธฐ๋ก ์กฐํ
์ค์ ํ
1. down ํจ์ ๊ฒ์ฆ
2. ๋กค๋ฐฑ ๊ณํ ๋ฌธ์ํ
3. ์๋ ๋กค๋ฐฑ ์คํฌ๋ฆฝํธ
๋ค์ ๋จ๊ณ
์ ๋ต
์์ ํ ๋ง์ด๊ทธ๋ ์ด์
์ ๋ต
๋ง์ด๊ทธ๋ ์ด์ ์คํ
migrate run์ผ๋ก ์ ์ฉ
๋ง์ด๊ทธ๋ ์ด์ ์์ฑ
Sonamu UI์์ ์์ฑ
๋์ ์๋ฆฌ
์๋ ์์ฑ ์ดํดํ๊ธฐ