From 3cb2e15629ddd81aceda0d3bd5cf419dd843c1ad Mon Sep 17 00:00:00 2001 From: M1 AIR Date: Sun, 8 Mar 2026 20:00:22 +0700 Subject: [PATCH] fix: defer fifo ayam migrations until seed exists --- ...260304063215_fix_fifo_chickin_out.down.sql | 6 +--- ...20260304063215_fix_fifo_chickin_out.up.sql | 32 ++--------------- ...5044_add_ayam_flag_member_fifo_v2.down.sql | 4 +-- ...105044_add_ayam_flag_member_fifo_v2.up.sql | 11 ++---- ...2_fix_fifo_chickin_out_after_seed.down.sql | 9 +++++ ...012_fix_fifo_chickin_out_after_seed.up.sql | 34 +++++++++++++++++++ ...am_flag_member_fifo_v2_after_seed.down.sql | 7 ++++ ...ayam_flag_member_fifo_v2_after_seed.up.sql | 13 +++++++ 8 files changed, 69 insertions(+), 47 deletions(-) create mode 100644 internal/database/migrations/20260306090012_fix_fifo_chickin_out_after_seed.down.sql create mode 100644 internal/database/migrations/20260306090012_fix_fifo_chickin_out_after_seed.up.sql create mode 100644 internal/database/migrations/20260306090013_add_ayam_flag_member_fifo_v2_after_seed.down.sql create mode 100644 internal/database/migrations/20260306090013_add_ayam_flag_member_fifo_v2_after_seed.up.sql diff --git a/internal/database/migrations/20260304063215_fix_fifo_chickin_out.down.sql b/internal/database/migrations/20260304063215_fix_fifo_chickin_out.down.sql index 26e637ff..98a48ad8 100644 --- a/internal/database/migrations/20260304063215_fix_fifo_chickin_out.down.sql +++ b/internal/database/migrations/20260304063215_fix_fifo_chickin_out.down.sql @@ -1,9 +1,5 @@ BEGIN; -DELETE FROM fifo_stock_v2_route_rules -WHERE flag_group_code = 'AYAM' - AND lane = 'USABLE' - AND function_code = 'CHICKIN_OUT' - AND source_table = 'project_chickins'; +-- no-op: moved to 20260306090012_fix_fifo_chickin_out_after_seed.down.sql COMMIT; diff --git a/internal/database/migrations/20260304063215_fix_fifo_chickin_out.up.sql b/internal/database/migrations/20260304063215_fix_fifo_chickin_out.up.sql index 3967da36..865f5341 100644 --- a/internal/database/migrations/20260304063215_fix_fifo_chickin_out.up.sql +++ b/internal/database/migrations/20260304063215_fix_fifo_chickin_out.up.sql @@ -1,34 +1,6 @@ BEGIN; -INSERT INTO fifo_stock_v2_route_rules( - flag_group_code, - lane, - function_code, - source_table, - source_id_column, - product_warehouse_col, - quantity_col, - used_quantity_col, - pending_quantity_col, - scope_sql, - legacy_type_key, - allow_pending_default, - is_active -) -VALUES - ('AYAM', 'USABLE', 'CHICKIN_OUT', 'project_chickins', 'id', 'product_warehouse_id', 'usage_qty', NULL, 'pending_usage_qty', 'deleted_at IS NULL', 'PROJECT_CHICKIN', TRUE, TRUE) -ON CONFLICT (flag_group_code, lane, function_code, source_table) DO UPDATE -SET - source_id_column = EXCLUDED.source_id_column, - product_warehouse_col = EXCLUDED.product_warehouse_col, - quantity_col = EXCLUDED.quantity_col, - used_quantity_col = EXCLUDED.used_quantity_col, - pending_quantity_col = EXCLUDED.pending_quantity_col, - scope_sql = EXCLUDED.scope_sql, - legacy_type_key = EXCLUDED.legacy_type_key, - allow_pending_default = EXCLUDED.allow_pending_default, - updated_at = NOW(), - -- Keep existing is_active (do not override disable migration if it was intentional). - is_active = fifo_stock_v2_route_rules.is_active; +-- no-op: moved to 20260306090012_fix_fifo_chickin_out_after_seed.up.sql +-- to ensure AYAM flag group exists before route-rule upsert. COMMIT; diff --git a/internal/database/migrations/20260305105044_add_ayam_flag_member_fifo_v2.down.sql b/internal/database/migrations/20260305105044_add_ayam_flag_member_fifo_v2.down.sql index 52747c92..d0e09041 100644 --- a/internal/database/migrations/20260305105044_add_ayam_flag_member_fifo_v2.down.sql +++ b/internal/database/migrations/20260305105044_add_ayam_flag_member_fifo_v2.down.sql @@ -1,7 +1,5 @@ BEGIN; -DELETE FROM fifo_stock_v2_flag_members -WHERE flag_name = 'AYAM' - AND flag_group_code = 'AYAM'; +-- no-op: moved to 20260306090013_add_ayam_flag_member_fifo_v2_after_seed.down.sql COMMIT; diff --git a/internal/database/migrations/20260305105044_add_ayam_flag_member_fifo_v2.up.sql b/internal/database/migrations/20260305105044_add_ayam_flag_member_fifo_v2.up.sql index 28c495ed..7774cd7b 100644 --- a/internal/database/migrations/20260305105044_add_ayam_flag_member_fifo_v2.up.sql +++ b/internal/database/migrations/20260305105044_add_ayam_flag_member_fifo_v2.up.sql @@ -1,13 +1,6 @@ BEGIN; -INSERT INTO fifo_stock_v2_flag_members(flag_name, flag_group_code, priority, is_active, created_at, updated_at) -VALUES - ('AYAM', 'AYAM', 5, TRUE, NOW(), NOW()) -ON CONFLICT (flag_name) DO UPDATE -SET - flag_group_code = EXCLUDED.flag_group_code, - priority = EXCLUDED.priority, - is_active = TRUE, - updated_at = NOW(); +-- no-op: moved to 20260306090013_add_ayam_flag_member_fifo_v2_after_seed.up.sql +-- to ensure AYAM flag group exists before inserting AYAM member. COMMIT; diff --git a/internal/database/migrations/20260306090012_fix_fifo_chickin_out_after_seed.down.sql b/internal/database/migrations/20260306090012_fix_fifo_chickin_out_after_seed.down.sql new file mode 100644 index 00000000..26e637ff --- /dev/null +++ b/internal/database/migrations/20260306090012_fix_fifo_chickin_out_after_seed.down.sql @@ -0,0 +1,9 @@ +BEGIN; + +DELETE FROM fifo_stock_v2_route_rules +WHERE flag_group_code = 'AYAM' + AND lane = 'USABLE' + AND function_code = 'CHICKIN_OUT' + AND source_table = 'project_chickins'; + +COMMIT; diff --git a/internal/database/migrations/20260306090012_fix_fifo_chickin_out_after_seed.up.sql b/internal/database/migrations/20260306090012_fix_fifo_chickin_out_after_seed.up.sql new file mode 100644 index 00000000..3967da36 --- /dev/null +++ b/internal/database/migrations/20260306090012_fix_fifo_chickin_out_after_seed.up.sql @@ -0,0 +1,34 @@ +BEGIN; + +INSERT INTO fifo_stock_v2_route_rules( + flag_group_code, + lane, + function_code, + source_table, + source_id_column, + product_warehouse_col, + quantity_col, + used_quantity_col, + pending_quantity_col, + scope_sql, + legacy_type_key, + allow_pending_default, + is_active +) +VALUES + ('AYAM', 'USABLE', 'CHICKIN_OUT', 'project_chickins', 'id', 'product_warehouse_id', 'usage_qty', NULL, 'pending_usage_qty', 'deleted_at IS NULL', 'PROJECT_CHICKIN', TRUE, TRUE) +ON CONFLICT (flag_group_code, lane, function_code, source_table) DO UPDATE +SET + source_id_column = EXCLUDED.source_id_column, + product_warehouse_col = EXCLUDED.product_warehouse_col, + quantity_col = EXCLUDED.quantity_col, + used_quantity_col = EXCLUDED.used_quantity_col, + pending_quantity_col = EXCLUDED.pending_quantity_col, + scope_sql = EXCLUDED.scope_sql, + legacy_type_key = EXCLUDED.legacy_type_key, + allow_pending_default = EXCLUDED.allow_pending_default, + updated_at = NOW(), + -- Keep existing is_active (do not override disable migration if it was intentional). + is_active = fifo_stock_v2_route_rules.is_active; + +COMMIT; diff --git a/internal/database/migrations/20260306090013_add_ayam_flag_member_fifo_v2_after_seed.down.sql b/internal/database/migrations/20260306090013_add_ayam_flag_member_fifo_v2_after_seed.down.sql new file mode 100644 index 00000000..52747c92 --- /dev/null +++ b/internal/database/migrations/20260306090013_add_ayam_flag_member_fifo_v2_after_seed.down.sql @@ -0,0 +1,7 @@ +BEGIN; + +DELETE FROM fifo_stock_v2_flag_members +WHERE flag_name = 'AYAM' + AND flag_group_code = 'AYAM'; + +COMMIT; diff --git a/internal/database/migrations/20260306090013_add_ayam_flag_member_fifo_v2_after_seed.up.sql b/internal/database/migrations/20260306090013_add_ayam_flag_member_fifo_v2_after_seed.up.sql new file mode 100644 index 00000000..28c495ed --- /dev/null +++ b/internal/database/migrations/20260306090013_add_ayam_flag_member_fifo_v2_after_seed.up.sql @@ -0,0 +1,13 @@ +BEGIN; + +INSERT INTO fifo_stock_v2_flag_members(flag_name, flag_group_code, priority, is_active, created_at, updated_at) +VALUES + ('AYAM', 'AYAM', 5, TRUE, NOW(), NOW()) +ON CONFLICT (flag_name) DO UPDATE +SET + flag_group_code = EXCLUDED.flag_group_code, + priority = EXCLUDED.priority, + is_active = TRUE, + updated_at = NOW(); + +COMMIT;