| name | oma-pipeline |
| description | Use when the user wants to run/continue the OMA SQL transform pipeline (OracleโPostgreSQL/MySQL MyBatis mapper conversion), check its status, or handle a specific step: analyze, transform, review, validate, merge, test.
|
OMA Pipeline Orchestration
๋(๋ฉ์ธ ์ธ์
)๋ OMA ํ์ดํ๋ผ์ธ์ ์ค์ผ์คํธ๋ ์ดํฐ๋ค. LLM ์์
์ subagent์๊ฒ,
๊ฒฐ์ ์ ์์
์ oma CLI์ ์์ํ๋ค. ์ง์ SQL์ ๋ณํํ์ง ๋ง๋ผ.
๋ถ๋ณ ์์น
- ์ํ์ SSOT๋ DB๋ค. ์งํ ํ๋จ์ ํญ์
oma status --json์ผ๋ก ์์ํ๋ค.
- ์ฒดํฌํฌ์ธํธ ์น์ธํ. ๊ฐ ๋จ๊ณ๊ฐ ๋๋๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์์ฝํ๊ณ ์ฌ์ฉ์์๊ฒ
๋ค์ ํ๋์ ๋ฌป๋๋ค. ์ฌ์ฉ์ ์น์ธ ์์ด ๋ค์ ๋จ๊ณ๋ก ์๋ ์งํํ์ง ์๋๋ค.
- ๋ณ๋ ฌ dispatch๋ ์ต๋ 5๊ฐ. ๋ฐฐ์น๊ฐ ๋ ๋ง์ผ๋ฉด 5๊ฐ ๋จ์๋ก ๋๋ ์์ฐจ dispatch.
- subagent ์๋ต์ ํ์ฑํ์ง ์๋๋ค. dispatch ํ ๊ฒฐ๊ณผ ์ง๊ณ๋
oma status --json
์ฌ์กฐํ๋ก ํ๋ค. subagent์ ํ ์ค ์๋ต์ ์ฐธ๊ณ ์ฉ์ผ ๋ฟ์ด๋ค.
- ๋ชจ๋ oma CLI ํธ์ถ์
OMA_OUTPUT_DIR๊ฐ ์ค์ ๋ ํ๊ฒฝ์์ ์คํํ๋ค. ์ธ์
์์ ์
์ฌ์ฉ์๊ฐ ์ง์ ํ ์์
๋๋ ํ ๋ฆฌ๋ฅผ ์ ์งํ๋ค (์: example/output).
๋จ๊ณ๋ณ ์ ์ฐจ
0. Setup
oma status ์คํ์ด "DB not found"๋ฉด: ์ฌ์ฉ์์๊ฒ ์์ค ๊ฒฝ๋กยทํ๊ฒ DB๋ฅผ
๋ฌผ์ ๋ค oma setup --non-interactive --source <path> --target-db <db>.
DB ์ ์ ์ ๋ณด๋ Test ๋จ๊ณ ์ ๊น์ง ๋ถํ์ํ๋ค๊ณ ์๋ด.
1. Analyze
oma analyze --json
์๋ฃ ํ ์์ฝ ํ์ (mapper ์, SQL ์, ๋ฉํ๋ฐ์ดํฐ ์ํ) +
output/strategy/transform_strategy.md ์ด์ ์กด์ฌ ์๋ด.
์ฒดํฌํฌ์ธํธ: [์ ์ฒด ๋ณํ ์งํ / ์ํ N๊ฑด๋ง / ์ ๋ต ํ์ผ ๊ฒํ ยท์์ / ์ค๋จ]
2. Transform
oma db pending --step transform --json
batches ๋ฐฐ์ด์ ๊ฐ ํญ๋ชฉ๋ง๋ค oma-transformer๋ฅผ dispatch (๋ณ๋ ฌ, ์ต๋ 5):
dispatch prompt ํ
ํ๋ฆฟ:
"mapper_file: {mapper_file} (part {part}/{parts})
sql_ids: {sql_ids ์ผํ ๋ชฉ๋ก}
target DB: {TARGET_DBMS_TYPE ๊ฐ}
OMA_OUTPUT_DIR={ํ์ฌ ์์
๋๋ ํ ๋ฆฌ}
์ SQL๋ค์ ๋ณํํ๊ณ oma db save-transform์ผ๋ก ๊ธฐ๋กํ๋ผ."
์ ์ฒด ์๋ฃ ํ oma status --json์ผ๋ก ์ง๊ณ.
์ฒดํฌํฌ์ธํธ: ์ฑ๊ณต/์คํจ ์์ฝ โ [Review ์งํ / ์คํจ ๊ฑด ์ฌ์๋ / ์ค๋จ]
์คํจ ์ฌ์๋: oma db pending --step transform --only "<์คํจ ๋ชฉ๋ก>"์ผ๋ก ๋ฐฐ์น ์ฌ์์ฑ.
3. Review (์ต๋ 3 ๋ผ์ด๋)
oma db pending --step review --json
๊ฐ ๋ฐฐ์น๋ฅผ oma-reviewer๋ก dispatch (transform๊ณผ ๋์ผ ํจํด).
๋ผ์ด๋ ์ข
๋ฃ ํ oma status --json์ review_failed ํ์ธ:
- review_failed == 0 โ Validate๋ก
- review_failed > 0 โ ์ฒดํฌํฌ์ธํธ: FAIL ๋ชฉ๋ก + ์ฌ์ ์์ฝ ํ์
[์๋ ์ฌ๋ณํ / ํด๋น SQL ๊ฑด๋๋ฐ๊ธฐ / ์๋ ํ์ธ]
- ์๋ ์ฌ๋ณํ ์ ํ ์:
a. ๋ผ์ด๋ 2 ์ด์์ด๋ฉด ๋จผ์ oma-strategy-refiner๋ฅผ dispatch (1๊ฐ, ์ง๋ ฌ)
b. FAIL ๊ฑด์ ํผ๋๋ฐฑ์ ๋ชจ์ oma-transformer dispatch
(dispatch prompt์ SQL๋ณ ํผ๋๋ฐฑ ํฌํจ โ
oma db feedback-patterns --json๋ก ์์ง)
c. oma db reset --step review --only "<ํด๋น ๊ฑด>" ํ ์ฌ๋ฆฌ๋ทฐ
- 3๋ผ์ด๋ ํ์๋ FAIL โ ์ฌ์ฉ์์๊ฒ ์๋ ์ฒ๋ฆฌ ๋ชฉ๋ก์ผ๋ก ๋ณด๊ณ
4. Validate
oma db pending --step validate --json
oma-validator dispatch (๋์ผ ํจํด).
์ฒดํฌํฌ์ธํธ: FAIL ๊ฑด(validator๊ฐ ์์ ๋ถ๊ฐ ํ์ ) ๋ชฉ๋ก + ์ฌ์ โ
๊ฑด๋ณ ๋๋ ์ผ๊ด [์น์ธํ๊ณ ์งํ / ์ฌ๋ณํ ์ง์ / ์ค๋จ]
5. Merge
oma merge --json
๊ฒฐ์ ์ ์์
โ subagent ๋ถํ์. ์๋ฃ ํ merged/skipped ์์ฝ.
์ฒดํฌํฌ์ธํธ: [Test ์งํ / ํน์ mapper diff ํ์ธ / ์ข
๋ฃ(Test ์๋ต)]
diff ํ์ธ ์์ฒญ ์: output/xmls/origin/๊ณผ output/xmls/merge/์ ํด๋น ํ์ผ์ Readํด ๋น๊ต ์์ฝ.
6. Test
oma test-exec --json
failures ๋ฐฐ์ด์ด ๋น๋ฉด ์๋ฃ. ์คํจ๊ฐ ์์ผ๋ฉด ์ฒดํฌํฌ์ธํธ:
[oma-test-fixer๋ก ์๋ ์์ / SKIP ์ฒ๋ฆฌ / ์๋]
- ์๋ ์์ : mapper๋ณ๋ก failures๋ฅผ ๋ฌถ์ด oma-test-fixer dispatch
- SKIP:
oma db set-tested <m> <s> --result SKIP --notes "<์ฌ์ฉ์ ์ฌ์ >"
test-fixer๋ ์์ ํ ์์ฒด์ ์ผ๋ก oma test-exec --only๋ก ์ฌ๊ฒ์ฆํ๊ณ oma merge --mapper๋ก ์ฌ๋ณํฉํ๋ค.
7. ์ข
๋ฃ
oma report ์คํ โ ์ฌ์ฉ์์๊ฒ ์๋ด:
- ์ต์ข
mapper:
output/xmls/merge/
- HTML ๋ฆฌํฌํธ:
output/reports/oma_report.html
์ค๋จ/์ฌ๊ฐ
์ธ์
์ด ๋๊ฒจ๋ ์ํ๋ DB์ ์๋ค. ์ฌ์ฉ์๊ฐ ๋์์ค๋ฉด oma status --json์ผ๋ก
ํ์ฌ ์์น๋ฅผ ํ์
ํ๊ณ ํด๋น ๋จ๊ณ์ ์ฒดํฌํฌ์ธํธ๋ถํฐ ์ฌ๊ฐํ๋ค.