meson.build (5559B)
1 sqldir = get_option('datadir') / 'taler-merchant' / 'sql' 2 3 # Input files for the amalgamated global_procedures.sql. 4 # The order matters. 5 sql_global_procedures = [ 6 '../pg_interval_to_start.sql', 7 '../pg_base32_crockford.sql', 8 '../pg_uri_escape.sql', 9 '../pg_replace_placeholder.sql', 10 '../get_report_by_token.sql', 11 '../create_tables.sql', 12 '../pg_fixup_instance_schema.sql', 13 '../iterate_outdated_kyc_statuses.sql', 14 '../iterate_wirewatch_accounts.sql', 15 '../iterate_open_expected_transfers.sql', 16 '../iterate_all_donau_instances.sql', 17 '../do_solve_mfa_challenge.sql', 18 '../iterate_pending_deposits.sql', 19 '../iterate_pending_reports.sql', 20 '../pg_select_accounts.sql', 21 '../pg_create_instance_schema.sql', 22 '../pg_create_instance_trigger.sql', 23 '../gc.sql', 24 ] 25 26 gprocedures_sql = custom_target( 27 'sql_global_procedures', 28 input: sql_global_procedures, 29 output: 'global_procedures.sql', 30 capture: true, 31 command: ['./gen-procedures.sh', 'merchant', '@INPUT@'], 32 install: true, 33 install_dir: sqldir, 34 ) 35 36 sql_instance_procedures = [ 37 '../pg_statistics_helpers.sql', 38 '../pg_do_handle_inventory_changes.sql', 39 '../pg_do_handle_category_changes.sql', 40 '../delete_order.sql', 41 '../delete_product.sql', 42 '../delete_unit.sql', 43 '../insert_unit.sql', 44 '../update_unit.sql', 45 '../iterate_statistic_interval_amounts.sql', 46 '../iterate_statistic_interval_counters.sql', 47 '../insert_deposit_to_transfer.sql', 48 '../insert_product.sql', 49 '../insert_inventory_lock.sql', 50 '../insert_issued_token.sql', 51 '../insert_used_token.sql', 52 '../insert_transfer_details.sql', 53 '../update_product.sql', 54 '../insert_kyc_status.sql', 55 '../insert_kyc_failure.sql', 56 '../set_tos_accepted_early.sql', 57 '../update_category.sql', 58 '../update_product_group.sql', 59 '../update_money_pot.sql', 60 '../update_money_pot_totals.sql', 61 '../iterate_kyc_statuses.sql', 62 '../insert_transfer.sql', 63 '../insert_unclaim_signature.sql', 64 '../insert_deposit_confirmation.sql', 65 '../do_insert_account.sql', 66 '../update_to_account_inactive.sql', 67 '../do_expire_locks.sql', 68 '../pg_merchant_send_account_notification.sql', 69 '../pg_merchant_account_trigger.sql', 70 '../pg_merchant_send_kyc_notification.sql', 71 '../pg_merchant_kyc_trigger.sql', 72 '../pg_triggers.sql', 73 '../pg_update_inventory_locked.sql', 74 ] 75 76 iprocedures_sql = custom_target( 77 'instance_procedures', 78 input: sql_instance_procedures, 79 output: 'instance_procedures.sql', 80 capture: true, 81 command: ['./gen-procedures.sh', 'merchant_instances', '@INPUT@'], 82 install: true, 83 install_dir: sqldir, 84 ) 85 86 # gen-procedures.sh wraps each concatenation above in a single 87 # BEGIN ... COMMIT; make sure no input file closes that transaction early. 88 test( 89 'sql-procedures-transactions', 90 find_program('check-procedures-tx.sh'), 91 args: sql_global_procedures + sql_instance_procedures, 92 workdir: meson.current_source_dir(), 93 suite: ['backenddb'], 94 ) 95 96 generated_sql = [ 97 ['drop.sql'], 98 ['versioning.sql'], 99 ['merchant-0001.sql'], 100 ['merchant-0002.sql'], 101 ['merchant-0003.sql'], 102 ['merchant-0004.sql'], 103 ['merchant-0005.sql'], 104 ['merchant-0006.sql'], 105 ['merchant-0007.sql'], 106 ['merchant-0008.sql'], 107 ['merchant-0009.sql'], 108 ['merchant-0010.sql'], 109 ['merchant-0011.sql'], 110 ['merchant-0012.sql'], 111 ['merchant-0013.sql'], 112 ['merchant-0014.sql'], 113 ['merchant-0015.sql'], 114 ['merchant-0016.sql'], 115 ['merchant-0017.sql'], 116 ['merchant-0018.sql'], 117 ['merchant-0019.sql'], 118 ['merchant-0020.sql'], 119 ['merchant-0021.sql'], 120 ['merchant-0022.sql'], 121 ['merchant-0023.sql'], 122 ['merchant-0024.sql'], 123 ['merchant-0025.sql'], 124 ['merchant-0026.sql'], 125 ['merchant-0027.sql'], 126 ['merchant-0028.sql'], 127 ['merchant-0029.sql'], 128 ['merchant-0030.sql'], 129 ['merchant-0031.sql'], 130 ['merchant-0032.sql'], 131 ['merchant-0033.sql'], 132 ['merchant-0034.sql'], 133 ['merchant-0035.sql'], 134 # Note: 36 generated below! 135 ['merchant-0037.sql'], 136 ['merchant-0038.sql'], 137 ['merchant-0039.sql'], 138 ['merchant-0040.sql'], 139 ['merchant-0041.sql'], 140 ['merchant-0042.sql'], 141 ['merchant-0043.sql'], 142 ['merchant-0044.sql'], 143 ['merchant-0045.sql'], 144 ['merchant-0046.sql'], 145 ['merchant-0047.sql'], 146 ] 147 148 migration_sql = [] 149 foreach g : generated_sql 150 migration_sql += custom_target( 151 'gen-merchantdb-' + g[0], 152 input: g[0], 153 output: g[0], 154 capture: true, 155 command: ['./amalgamate-sql.sh', '@INPUT@'], 156 install: true, 157 install_dir: sqldir, 158 ) 159 endforeach 160 161 162 migration_sql += custom_target( 163 'gen-merchantdb-merchant_0036.sql', 164 input: [ 165 'merchant-0036.sql.in', 166 '../create_tables.sql', 167 '../pg_create_instance_schema.sql', 168 '../pg_fixup_instance_schema.sql', 169 'merchant-0036-init.sql.fragment', 170 'merchant-0036-copy.sql.fragment', 171 'merchant-0036-drop.sql.fragment', 172 'merchant-0036-setval.sql.fragment', 173 ], 174 output: ['merchant-0036.sql'], 175 capture: true, 176 command: ['./preprocess-sql.sh', '@INPUT@'], 177 install: true, 178 install_dir: sqldir, 179 ) 180 181 test( 182 'order-sequence-migrations', 183 find_program('python3'), 184 args: [ 185 files('../test_order_sequence_migrations.py'), 186 meson.current_source_dir(), 187 meson.current_build_dir(), 188 ], 189 depends: migration_sql, 190 suite: ['backenddb'], 191 timeout: 120, 192 )