๐ ํ์ฌ ๋ฌธ์ ์
ํ์ฌ ๋ฐ์ผ๋ฆฌ ํ์ดํ๋ผ์ธ์ด 1๊ฐ ๊ธฐ์ค์ผ๋ก ๋์ํ๊ณ ์์ด, ํฅํ ์ฌ๋ฌ ๋ฐ์ผ๋ฆฌ ํ์ดํ๋ผ์ธ ์ด์ ์ ์ฒด๊ฒฐ ๋ด์ญ(executions)์ ํ์ดํ๋ผ์ธ ๋จ์๋ก ๋ถ๋ฆฌ/์ถ์ ํ๊ธฐ ์ด๋ ต์ต๋๋ค.
executions์ ๊ณ์ ์๋ณ์(account_id)๊ฐ ์์ด ๋์ผ ๊ธฐ๊ฐ/๋์ผ ์ข
๋ชฉ ์ฒด๊ฒฐ์ด ์์ฌ ํด์๋๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๊ธฐ์กด ์ฒด๊ฒฐ ๋ฐ์ดํฐ์๋ ๊ณ์ ์ ๋ณด๊ฐ ์์ด ๊ณผ๊ฑฐ ์ด๋ ฅ ๋ถ์ ๋ฐ ํ์ดํ๋ผ์ธ๋ณ ์ฑ๊ณผ ๋ถ๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๐ ๏ธ ํด๊ฒฐ ๋ฐฉ์ / ์ ์ ๊ธฐ๋ฅ
executions ํ
์ด๋ธ์ account_id ์ปฌ๋ผ์ ์ถ๊ฐํ๊ณ , account_names ํ
์ด๋ธ๊ณผ foreign key๋ก ์ฐ๊ฒฐํ์ฌ ๊ณ์ ์๋ณ์ ํ์คํํฉ๋๋ค.
๊ธฐ์กด ํ์ดํ๋ผ์ธ์ ๊ณ ์ account_id๋ฅผ ๋ถ์ฌํ๊ณ , ์ฒด๊ฒฐ ์ ์ฅ ์ ํด๋น account_id๊ฐ ํญ์ ๊ธฐ๋ก๋๋๋ก ํ์ดํ๋ผ์ธ ์ ์ฅ ๋ก์ง์ ๊ฐ์ ํฉ๋๋ค.
ํฅํ ์ถ๊ฐ๋ ๊ฐ ๋ฐ์ผ๋ฆฌ ํ์ดํ๋ผ์ธ(pipelines ํ์)์ ๊ณ ์ ๊ณ์ ์ผ๋ก ๋ฑ๋ก ํ ๋์ผ ๊ท์น์ผ๋ก account_id๋ฅผ ์ฃผ์
ํด ์ฒด๊ฒฐ์ ๋ถ๋ฆฌ ์ ์ฅํฉ๋๋ค.
ํ์ฌ ์์ฑ๋ ๋ชจ๋ executions์ ๋ํด ๊ธฐ์กด ํ์ดํ๋ผ์ธ ๊ณ์ ID๋ฅผ ์ผ๊ด ๊ธฐ์
ํ๋ ๋ฐฑํ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํด ๋ฐ์ดํฐ ์ ํฉ์ฑ์ ํ๋ณดํฉ๋๋ค.
โ๏ธ ์์
๋ด์ฉ
DB ์คํค๋ง ๋ณ๊ฒฝ: account_names ํ
์ด๋ธ ์์ฑ
DB ์คํค๋ง ๋ณ๊ฒฝ: executions.account_id ์ปฌ๋ผ ์ถ๊ฐ
FK ์ฐ๊ฒฐ: executions.account_id -> account_names.id
์ธ๋ฑ์ค ์ถ๊ฐ: executions(account_id) (ํ์ ์ ๋ณตํฉ ์ธ๋ฑ์ค ํฌํจ)
๊ธฐ์กด ํ์ดํ๋ผ์ธ ๊ณ์ ๋ ์ฝ๋ ์์ฑ (id ์ ์ฑ
์ ๋ณ๋ ํ์ )
๊ธฐ์กด ๋ฐ์ผ๋ฆฌ ํ์ดํ๋ผ์ธ์ account_id ์ฃผ์
๋ก์ง ๋ฐ์
๋ฐฑํ ํ
์คํธ ์ฝ๋ ์์ฑ: ๊ธฐ์กด executions ์ ์ฒด์ legacy account_id ๊ธฐ์
(dry-run/apply)
๋ฐฑํ ํ ๊ฒ์ฆ: NULL ๊ฑด์ 0, row ์ ๋ถ๋ณ, ์ํ ๊ฒ์ฆ
์ต์ข
์ ์ฝ ์ ์ฉ ๊ฒํ : executions.account_id NOT NULL
๐โโ๏ธ ๋ด๋น์
AI : ์์ฌ๋น
๐ ํ์ฌ ๋ฌธ์ ์
ํ์ฌ ๋ฐ์ผ๋ฆฌ ํ์ดํ๋ผ์ธ์ด 1๊ฐ ๊ธฐ์ค์ผ๋ก ๋์ํ๊ณ ์์ด, ํฅํ ์ฌ๋ฌ ๋ฐ์ผ๋ฆฌ ํ์ดํ๋ผ์ธ ์ด์ ์ ์ฒด๊ฒฐ ๋ด์ญ(executions)์ ํ์ดํ๋ผ์ธ ๋จ์๋ก ๋ถ๋ฆฌ/์ถ์ ํ๊ธฐ ์ด๋ ต์ต๋๋ค.
executions์ ๊ณ์ ์๋ณ์(account_id)๊ฐ ์์ด ๋์ผ ๊ธฐ๊ฐ/๋์ผ ์ข ๋ชฉ ์ฒด๊ฒฐ์ด ์์ฌ ํด์๋๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๊ธฐ์กด ์ฒด๊ฒฐ ๋ฐ์ดํฐ์๋ ๊ณ์ ์ ๋ณด๊ฐ ์์ด ๊ณผ๊ฑฐ ์ด๋ ฅ ๋ถ์ ๋ฐ ํ์ดํ๋ผ์ธ๋ณ ์ฑ๊ณผ ๋ถ๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๐ ๏ธ ํด๊ฒฐ ๋ฐฉ์ / ์ ์ ๊ธฐ๋ฅ
executions ํ ์ด๋ธ์ account_id ์ปฌ๋ผ์ ์ถ๊ฐํ๊ณ , account_names ํ ์ด๋ธ๊ณผ foreign key๋ก ์ฐ๊ฒฐํ์ฌ ๊ณ์ ์๋ณ์ ํ์คํํฉ๋๋ค.
๊ธฐ์กด ํ์ดํ๋ผ์ธ์ ๊ณ ์ account_id๋ฅผ ๋ถ์ฌํ๊ณ , ์ฒด๊ฒฐ ์ ์ฅ ์ ํด๋น account_id๊ฐ ํญ์ ๊ธฐ๋ก๋๋๋ก ํ์ดํ๋ผ์ธ ์ ์ฅ ๋ก์ง์ ๊ฐ์ ํฉ๋๋ค.
ํฅํ ์ถ๊ฐ๋ ๊ฐ ๋ฐ์ผ๋ฆฌ ํ์ดํ๋ผ์ธ(pipelines ํ์)์ ๊ณ ์ ๊ณ์ ์ผ๋ก ๋ฑ๋ก ํ ๋์ผ ๊ท์น์ผ๋ก account_id๋ฅผ ์ฃผ์ ํด ์ฒด๊ฒฐ์ ๋ถ๋ฆฌ ์ ์ฅํฉ๋๋ค.
ํ์ฌ ์์ฑ๋ ๋ชจ๋ executions์ ๋ํด ๊ธฐ์กด ํ์ดํ๋ผ์ธ ๊ณ์ ID๋ฅผ ์ผ๊ด ๊ธฐ์ ํ๋ ๋ฐฑํ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํด ๋ฐ์ดํฐ ์ ํฉ์ฑ์ ํ๋ณดํฉ๋๋ค.
โ๏ธ ์์ ๋ด์ฉ
DB ์คํค๋ง ๋ณ๊ฒฝ: account_names ํ ์ด๋ธ ์์ฑ
DB ์คํค๋ง ๋ณ๊ฒฝ: executions.account_id ์ปฌ๋ผ ์ถ๊ฐ
FK ์ฐ๊ฒฐ: executions.account_id -> account_names.id
์ธ๋ฑ์ค ์ถ๊ฐ: executions(account_id) (ํ์ ์ ๋ณตํฉ ์ธ๋ฑ์ค ํฌํจ)
๊ธฐ์กด ํ์ดํ๋ผ์ธ ๊ณ์ ๋ ์ฝ๋ ์์ฑ (id ์ ์ฑ ์ ๋ณ๋ ํ์ )
๊ธฐ์กด ๋ฐ์ผ๋ฆฌ ํ์ดํ๋ผ์ธ์ account_id ์ฃผ์ ๋ก์ง ๋ฐ์
๋ฐฑํ ํ ์คํธ ์ฝ๋ ์์ฑ: ๊ธฐ์กด executions ์ ์ฒด์ legacy account_id ๊ธฐ์ (dry-run/apply)
๋ฐฑํ ํ ๊ฒ์ฆ: NULL ๊ฑด์ 0, row ์ ๋ถ๋ณ, ์ํ ๊ฒ์ฆ
์ต์ข ์ ์ฝ ์ ์ฉ ๊ฒํ : executions.account_id NOT NULL
๐โโ๏ธ ๋ด๋น์
AI : ์์ฌ๋น