DB Migration - team-wedev/wedev GitHub Wiki

DB Migration

Typeorm-cli ์„ค์ •

typeorm-cli ๋ฅผ ํ†ตํ•œ migration ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ๋•Œ, .ts์˜ ํ™•์žฅ์ž๋กœ ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค. ์ดํ›„ migration์„ ์ ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋”ฐ๋ผ์„œ typescript๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ js๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์‹ค์‹œํ•ด์•ผํ•œ๋‹ค.

ts-node๋ฅผ ์„ค์น˜ํ•œ ์ดํ›„ ์•„๋ž˜์™€ ๊ฐ™์€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

  • package.json
    "typeorm": "ts-node ./node_modules/typeorm/cli.js"

์ดํ›„, migration์„ ์ ์šฉํ•  ๋•Œ๋Š” npm run typeorm migration:run ๋˜๋Š” npm run typeorm migration:revert ๊ณผ ๊ฐ™์ด ๋ช…๋ น์–ด๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

dotenv ๋ฅผ ํ†ตํ•œ ์„ค์ •

TYPEORM_CONNECTION=
TYPEORM_HOST=
TYPEORM_USERNAME=
TYPEORM_PASSWORD=
TYPEORM_DATABASE=
TYPEORM_PORT=
TYPEORM_SYNCHRONIZE=
TYPEORM_LOGGING=
TYPEORM_ENTITIES=

TYPEORM_MIGRATIONS=src/migration/*.ts // ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์—์„œ migration ํŒŒ์ผ์„ ๋กœ๋“œํ•ด์„œ ์ ์šฉํ•œ๋‹ค.
TYPEORM_MIGRATIONS_DIR=src/migration  // ์ƒˆ migration ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ๋””๋ ‰ํ† ๋ฆฌ

์ฐธ์กฐ