Report
Laporan komprehensif pemetaan tabel sumber (MySQL), tabel target (PostgreSQL), keterlibatan file S3/OBS, serta rekomendasi urutan eksekusi untuk Sprint 1 ACI Superapp.
Laporan Analisis Kesiapan Migrasi Modul (Sprint 1)
Dokumen ini menyajikan hasil analisis mendalam terhadap 31 item modul pada Sprint 1 berdasarkan sheet Modul untuk Migrasi pada file Excel Kegiatan Migrasi ACI Superapp V1.xlsx. Analisis ini telah diverifikasi secara langsung terhadap basis data operasional sumber (MySQL assessortool_migrasi) dan target (PostgreSQL acisuperapp-staging).
1. Executive Summary
Dari total 31 item pada Sprint 1:
- 100% Tabel Sumber Tersedia: Seluruh tabel sumber di MySQL terkonfirmasi ada dan memiliki data operasional (dengan catatan perbaikan penamaan tabel
p_recomendation_map→p_recommendation_map). - 100% Struktur Tabel Target Tersedia: Skema dan tabel target di PostgreSQL
acisuperapp-staging(activity-cmsdanuser) telah dibuat dan siap menerima data. - Sebagian Data Sudah Dimigrasikan: Tabel
competency(475 baris) dancompetency_label(3.285 baris) sudah terisi di database target.
Koreksi Typo Tabel Sumber
Pada item No. 41 (Mapping Final Recommendation HATS), di file Excel tertulis p_recomendation_map (1 huruf 'm'). Di database MySQL sumber, nama tabel yang sebenarnya adalah p_recommendation_map (2 huruf 'm') dengan jumlah 180 baris. Tabel ini tersedia dan siap dimigrasikan.
2. Matriks Analisis Kesiapan 31 Item Sprint 1
Berikut adalah tabel pemetaan lengkap seluruh modul pada Sprint 1:
| No | Modul / Halaman | Fitur | Tabel Sumber (MySQL) | Baris Sumber | Tabel Target (PostgreSQL) | Keterlibatan S3/OBS | Kesiapan | Wave |
|---|---|---|---|---|---|---|---|---|
| 11 | Settings / Hari Libur | Holiday | hari_libur | 137 | activity-cms.dev_master_holiday | Tidak | SIAP | Wave 1 |
| 13 | Settings / City | Master City | p_city | 48 | activity-cms.master_city | Tidak | SIAP | Wave 1 |
| 16 | Settings / Company Type | Company Type | p_company_type | 5 | activity-cms.master_company_type | Tidak | SIAP | Wave 1 |
| 21 | Settings / Pointers Type | Pointers Type | p_type_words | 7 | activity-cms.master_comp_point_type | Tidak | SIAP | Wave 1 |
| 25 | Settings / Jenis Test | Development Test Type | pad_jenis_test_master | 29 | activity-cms.dev_test_type | Tidak | SIAP | Wave 1 |
| 36 | Assessment / Job Family | Master Job Family | n_job_family | 53 | activity-cms.master_job_family | Tidak | SIAP | Wave 1 |
| 40 | Assessment / Final Recom | Final Recom HATS | p_recommendation_total | 23 | activity-cms.hats_final_recom | Tidak | SIAP | Wave 1 |
| 42 | Assessment / Project Type | Manage Project Type | p_project_type | 123 | activity-cms.project_type | Tidak | SIAP | Wave 1 |
| 43 | Assessment / Project Group | Manage Activity Type | m_master | 66 | activity-cms.activity_type | Tidak | SIAP | Wave 1 |
| 44 | Assessment / Rating Cat | Master Rating Category | p_rating_category | 3 | activity-cms.master_rating_cat | Tidak | SIAP | Wave 1 |
| 45 | Assessment / Recom | Master Recommendation | p_recommendation | 249 | activity-cms.master_recommendation | Tidak | SIAP | Wave 1 |
| 47 | Assessment / Simulation | Simulation Exercise | p_simulation | 35 | activity-cms.master_simulation | Tidak | SIAP | Wave 1 |
| 53 | Prompt AI / Master Prompt | Prompt AI | prompt_master | 8 | activity-cms.master_prompt_ai | Tidak | SIAP | Wave 1 |
| 31 | Competencies | Master Competency | p_competency | 475 | activity-cms.competency | Tidak | SUDAH MIGRASI (475) | Wave 2 |
| 32 | Competencies / Job Target | Competency Label | p_competency_jobtarget | 3.288 | activity-cms.competency_label | Tidak | SUDAH MIGRASI (3.285) | Wave 2 |
| 33 | Competencies / Keybe | Key Behaviour | p_keybehaviour | 14.879 | activity-cms.key_behaviour | Tidak | SIAP (Butuh Wave 2.1) | Wave 2 |
| 34 | Competencies / Key Action | Key Action | self_key_action | 8.146 | activity-cms.key_action | Tidak | SIAP (Butuh Wave 2.2) | Wave 2 |
| 15 | Settings / Department | Company Department | p_company_department | 404 | activity-cms.master_department | Tidak | SIAP (Butuh Company) | Wave 2 |
| 35 | Assessment / Job Target | Manage Job Target | p_jobtarget | 544 | activity-cms.master_job_target | Tidak | SIAP (Butuh Comp Type) | Wave 2 |
| 37 | Assessment / Job Recom | Master Job Recom | p_job_general | 511 | activity-cms.master_job_recom | Tidak | SIAP (Butuh Job Target) | Wave 2 |
| 41 | Assessment / Map Final Recom | Mapping Final Recom | p_recommendation_map | 180 | activity-cms.mapping_final_recom_group | Tidak | SIAP (Butuh HATS Recom) | Wave 2 |
| 19 | Report / Pointers | Pointers Levelling | p_competency_words | 38.541 | activity-cms.master_comp_pointers | Tidak | SIAP (Butuh Pointers Type) | Wave 2 |
| 20 | Report / Pointers Level | Pointers Levelling | p_competency_words | 38.541 | activity-cms.master_comp_pointers | Tidak | SIAP (Identik No 19) | Wave 2 |
| 54 | Learning Hours | Manage Learning Hours | learning_hours_master, _child | 2 & 20 | activity-cms.master_learning_hour | Tidak | SIAP (Butuh Role) | Wave 2 |
| 4 | Virastium / Opening Video | Instruction Video | ola_opening_video, obs_storage | 7 & 4.454 | activity-cms.master_instruction_video | YA (Video MP4) | SIAP (via S3 Tool) | Wave 3 |
| 14 | Settings / Company | Manage Company | p_company, obs_storage | 273 | activity-cms.master_company | YA (Company Logo) | SIAP (via S3 Tool) | Wave 3 |
| 48 | Assessment / Penandatangan | Master Signer | p_penandatangan, obs_storage | 34 | activity-cms.master_signer | YA (Signer Image) | SIAP (via S3 Tool) | Wave 3 |
| 27 | Mapping / Project Manager | Manage PM | n_jobdep | 1.405 | activity-cms.master_project_manager | Tidak | SIAP (Butuh Employee) | Wave 3 |
| 22 | Settings / Users | User Management | users, participant | 5.545 & 34.514 | user.user, user.role | Tidak | SIAP (Skema Auth) | Wave 4 |
| 23 | Settings / Participant | Manage Employee (Index) | participant, users | 34.514 & 5.545 | activity-cms.master_employee | YA (Foto Karyawan) | SIAP (Skema Core) | Wave 4 |
| 24 | Settings / Participant | Manage Employee (Upload) | participant, users | 34.514 & 5.545 | activity-cms.master_employee | YA (Foto Karyawan) | SIAP (Fitur Duplikat 23) | Wave 4 |
3. Analisis Kategori & Rencana Eksekusi Bertahap (Waves)
Untuk meminimalkan risiko integritas relasional (Foreign Key) dan konflik data, migrasi Sprint 1 direkomendasikan dibagi menjadi 4 Gelombang (Waves):
Wave 1: Master Data Independen (Cepat & Risiko Rendah)
Tabel-tabel ini tidak memiliki dependensi foreign key ke tabel lain yang belum dimigrasikan. Dapat langsung dieksekusi secara instan:
p_city→activity-cms.master_city(48 baris)hari_libur→activity-cms.dev_master_holiday(137 baris)p_company_type→activity-cms.master_company_type(5 baris)p_type_words→activity-cms.master_comp_point_type(7 baris)pad_jenis_test_master→activity-cms.dev_test_type(29 baris)n_job_family→activity-cms.master_job_family(53 baris)p_recommendation_total→activity-cms.hats_final_recom(23 baris)p_project_type→activity-cms.project_type(123 baris)m_master→activity-cms.activity_type(66 baris)p_rating_category→activity-cms.master_rating_cat(3 baris)p_recommendation→activity-cms.master_recommendation(249 baris)p_simulation→activity-cms.master_simulation(35 baris)prompt_master→activity-cms.master_prompt_ai(8 baris)
Wave 2: Master Data Hirarkis & Relasional
Tabel-tabel ini memerlukan urutan eksekusi bertahap karena berelasi langsung dengan master data lainnya:
-
Pohon Kompetensi:
competency(475 baris) → Sudah ada di target.competency_label(3.285 baris) → Sudah ada di target.p_keybehaviour→activity-cms.key_behaviour(14.879 baris) → Harus merujuk kecompetency_label_id.self_key_action→activity-cms.key_action(8.146 baris) → Harus merujuk kekey_behaviour_id.
-
Job Target & Rekomendasi:
p_jobtarget→activity-cms.master_job_target(544 baris) → Merujuk kecompany_type_id.p_job_general→activity-cms.master_job_recom(511 baris) → Merujuk kejob_target_id.p_recommendation_map→activity-cms.mapping_final_recom_group(180 baris) → Merujuk kehats_final_recom.
-
Pointers & Levelling:
p_competency_words→activity-cms.master_comp_pointers(38.541 baris) → Merujuk kemaster_comp_point_type.
Wave 3: Master Data yang Memiliki File S3/OBS
Modul-modul ini menyimpan dokumen atau media fisik. Migrasi dilakukan dengan mengambil URL file hasil enkripsi dari tabel migration_obs_storage yang telah dibuat oleh s3-migrator:
p_company→activity-cms.master_company(273 baris):- Kolom
company_logodiisi darimigration_obs_storage(source_table_name = 'p_company').
- Kolom
p_penandatangan→activity-cms.master_signer(34 baris):- Kolom
signer_attachmentdiisi darimigration_obs_storage(source_table_name = 'p_penandatangan').
- Kolom
ola_opening_video→activity-cms.master_instruction_video(7 baris):- Kolom
instruction_video_filediisi dari file video yang telah diupload dan dienkripsi ke MinIO target.
- Kolom
Wave 4: User Management & Core Employee (Volume Besar)
Modul ini mencakup akun pengguna dan data master profil karyawan:
users→user.user&user.role(5.545 akun):- Pemetaan hak akses ke tabel relasi
role_application,application_menu.
- Pemetaan hak akses ke tabel relasi
participant→activity-cms.master_employee(34.514 profil):- Mengaitkan data perusahaan (
company_id), jabatan, dan foto karyawan (employee_photoviamigration_obs_storage).
- Mengaitkan data perusahaan (
n_jobdep→activity-cms.master_project_manager(1.405 baris):- Dilakukan setelah
master_employeedanmaster_departmentterisi.
- Dilakukan setelah
4. Kesimpulan & Rekomendasi Aksi
Rekomendasi Langkah Berikutnya
- Prioritas Eksekusi: Mulai eksekusi migrasi data SQL dari Wave 1 (13 tabel independen) karena 100% siap tanpa hambatan dependensi.
- Integrasi File OBS: Jalankan sinkronisasi
s3-migratorkhusus tabelp_companydanp_penandatanganagar saat data tabel bisnisnya di-insert ke PostgreSQL, kolomcompany_logodansigner_attachmentlangsung terisi Full URL yang valid. - Migrasi Pohon Kompetensi: Migrasikan
p_keybehaviourdanself_key_actionuntuk melengkapi datacompetencyyang sudah ada di PostgreSQL target.
Plan
Dokumen rencana operasional komprehensif migrasi Sprint 1 untuk semua wave (Wave 1 - Wave 4) menggunakan Duckle (DuckDB engine), pemetaan kolom, audit tabel terkendala, dan resep SQL lengkap.
Wave 1: Master Standalone
Laporan detail per tabel untuk Wave 1 (Master Standalone), perbandingan data eksisting MySQL vs target PostgreSQL (5 sample rows) yang akan di-push oleh Duckle.