|
| 1 | +Sequel.migration do |
| 2 | + up do |
| 3 | + # The most recent verification for each pact_version |
| 4 | + # provider_version column is DEPRECATED, use provider_version_number |
| 5 | + # Think this can be replaced by latest_verification_id_for_pact_version_and_provider_version? |
| 6 | + v = :verifications |
| 7 | + create_or_replace_view(:latest_verifications, |
| 8 | + from(v) |
| 9 | + .select( |
| 10 | + Sequel[v][:id], |
| 11 | + Sequel[v][:number], |
| 12 | + Sequel[v][:success], |
| 13 | + Sequel[:s][:number].as(:provider_version), |
| 14 | + Sequel[v][:build_url], |
| 15 | + Sequel[v][:pact_version_id], |
| 16 | + Sequel[v][:execution_date], |
| 17 | + Sequel[v][:created_at], |
| 18 | + Sequel[v][:provider_version_id], |
| 19 | + Sequel[:s][:number].as(:provider_version_number), |
| 20 | + Sequel[:s][:order].as(:provider_version_order), |
| 21 | + Sequel[v][:test_results]) |
| 22 | + .join(:latest_verification_numbers, |
| 23 | + { |
| 24 | + Sequel[v][:pact_version_id] => Sequel[:lv][:pact_version_id], |
| 25 | + Sequel[v][:number] => Sequel[:lv][:latest_number] |
| 26 | + }, { table_alias: :lv }) |
| 27 | + .join(:versions, |
| 28 | + { |
| 29 | + Sequel[v][:provider_version_id] => Sequel[:s][:id] |
| 30 | + }, { table_alias: :s }) |
| 31 | + ) |
| 32 | + end |
| 33 | + |
| 34 | + down do |
| 35 | + v = :verifications |
| 36 | + create_or_replace_view(:latest_verifications, |
| 37 | + from(v) |
| 38 | + .select( |
| 39 | + Sequel[v][:id], |
| 40 | + Sequel[v][:number], |
| 41 | + Sequel[v][:success], |
| 42 | + Sequel[:s][:number].as(:provider_version), |
| 43 | + Sequel[v][:build_url], |
| 44 | + Sequel[v][:pact_version_id], |
| 45 | + Sequel[v][:execution_date], |
| 46 | + Sequel[v][:created_at], |
| 47 | + Sequel[v][:provider_version_id], |
| 48 | + Sequel[:s][:number].as(:provider_version_number), |
| 49 | + Sequel[:s][:order].as(:provider_version_order)) |
| 50 | + .join(:latest_verification_numbers, |
| 51 | + { |
| 52 | + Sequel[v][:pact_version_id] => Sequel[:lv][:pact_version_id], |
| 53 | + Sequel[v][:number] => Sequel[:lv][:latest_number] |
| 54 | + }, { table_alias: :lv }) |
| 55 | + .join(:versions, |
| 56 | + { |
| 57 | + Sequel[v][:provider_version_id] => Sequel[:s][:id] |
| 58 | + }, { table_alias: :s }) |
| 59 | + ) |
| 60 | + end |
| 61 | +end |
0 commit comments