๋น๊ตยท์์ฑ
๊ธฐ์ค DB์๋ ๋ชจ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ด ์ ์ฉ๋ ์ฐ๊ฒฐ๋ง ๋ํ๋ฉ๋๋ค. Sonamu๋ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค์ ์คํค๋ง๋ฅผ Entity ์ ์์ ๋น๊ตํด ์์ฑํ ๋ณ๊ฒฝ์ฌํญ๊ณผ ์ฝ๋๋ฅผ ๋ณด์ฌ์ค๋๋ค.- ๊ธฐ์ค DB๋ฅผ ์ ํํฉ๋๋ค.
- ํ์ํ๋ฉด ๋ชจ๋ ํผ์น๊ธฐ๋ก ์์ฑ ์ฝ๋๋ฅผ ๊ฒํ ํฉ๋๋ค.
- ๋ง์ด๊ทธ๋ ์ด์ ์์ฑ์ ๋๋ฌ ํ์ผ์ ๋ง๋ญ๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ์ํ
ํ์ ๋ง์ด๊ทธ๋ ์ด์ ํ์ผ, ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ๋๋ค. ๊ฐ ์ ์APPLIED ๋๋ PENDING์ ํ์ํฉ๋๋ค. ์ฐ๊ฒฐ์ ๊ฐ๊ฐ ๋
๋ฆฝ์ ์ผ๋ก ์กฐํ๋๋ฏ๋ก ๋๋ฆฌ๊ฑฐ๋ ์คํจํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ค๋ฅธ ์ด์ ํ์๋ฅผ ๋ง์ง ์์ต๋๋ค.
- ์ด ๋จธ๋ฆฌ๊ธ์ด๋ ์ ์ ๋๋ฌ ์คํ ๋์์ ์ ํํฉ๋๋ค.
- ์์ธํ๋ฅผ ์ผ๋ฉด host, database, remote ์ฌ๋ถ์ ์ด ์๋ก๊ณ ์นจ ๋ฒํผ์ ๋ณผ ์ ์์ต๋๋ค.
- ์ฐ๊ฒฐ ์ค๋ฅ์ ์ค๋ฅ ๋ฐฐ์ง๋ฅผ ๋๋ฅด๋ฉด ์๋ฒ๊ฐ ๋ฐํํ ์์ธ์ ํ์ธํ ์ ์์ต๋๋ค.
์ต์ ์ผ๋ก ์ ์ฉ
์ต์ ์ผ๋ก ์ ์ฉ์ ์ ํํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํดknex.migrate.latest()๋ฅผ ์์๋๋ก ์คํํฉ๋๋ค. ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ์ฉ๋๋ ํ์ผ์ ํ๋์ Knex batch๋ฅผ ์ ์งํฉ๋๋ค.
์คํ ์ฐฝ์ ๋ค์ ์์๋ก ์งํ๋ฉ๋๋ค.
- ๊ฒํ : ๋์๊ณผ Pending ํ์ผ์ ํ์ธํ๊ณ Shadow ๊ฒ์ฆ ์ฌ๋ถ๋ฅผ ์ ํํฉ๋๋ค.
- ์น์ธ: ์ค์ ๋ ์๊ฒฉ ๋์์ด ์์ผ๋ฉด Slack ์น์ธ์ ์์ฒญํ๊ณ 2์ด๋ง๋ค ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
- ์ ์ฉ: ํ์ผ๋ณ ์คํ ์งํ๋ฅ ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณ ์๋ฃ ์ํ๋ฅผ ํ์ํฉ๋๋ค.
๋กค๋ฐฑ
Rollback์ ํ์ผ ํ ์ ํ๊ณผ ๋ฌด๊ดํ๊ฒ, ์ ํํ ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ฅ ์ต๊ทผ Knex batch ์ ์ฒด๋ฅผ ๋๋๋ฆฝ๋๋ค.down()์ Knex๊ฐ ์ ๊ณตํ ์ญ์์ผ๋ก ์คํ๋ฉ๋๋ค.
ํ๊ดด์ ์ธ ๋์์ด๋ฏ๋ก ๋กค๋ฐฑ ๋ฒํผ์ ์ฒ์ ๋๋ฅด๋ฉด ํ์ธ ๋ฌธ๊ตฌ๋ก ๋ฐ๋๊ณ , ํ ๋ฒ ๋ ๋๋ฌ์ผ ์คํ๋ฉ๋๋ค. ๋์ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ํด๋น ํ์ผ์์ ์ค๋จ๋ฉ๋๋ค. ๋ค๋ง ๋กค๋ฐฑ ํธ๋์ญ์
๋ ์ทจ์๋๊ธฐ ๋๋ฌธ์ ์๋ฌด๋ฐ ๋ณํ๊ฐ ์์ด ๋ณด์ผ ์ ์์ต๋๋ค. ๋กค๋ฐฑ์ ์ต์ ๋ง์ด๊ทธ๋ ์ด์
๋ถํฐ ์์๋๋ก ์คํ๋๋ฏ๋ก, ์ด๋ ๊ฒ ์ค๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋ค์ ๋กค๋ฐฑ์ผ๋ก ๋์ด๊ฐ ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ
Scaffolding ํญ
Model ์ฝ๋ ์๋ ์์ฑ
migrate CLI
CLI๋ก ๋ง์ด๊ทธ๋ ์ด์
๊ด๋ฆฌ