Sha256: 25b7dd43974b460e00b1ef11542702d46cda2f4be007676f5f3317d4cdac6134

Contents?: true

Size: 1.39 KB

Versions: 44

Compression:

Stored size: 1.39 KB

Contents

Sequel.migration do
  up do
    # Latest pact_publication (revision) for each provider/consumer version.
    # Keeping track of this in a table rather than having to calculate the
    # latest revision speeds things up.
    # We don't have to worry about updating it if a revision is deleted, because
    # you can't delete a single pact revision through the API - all the revisions
    # for a pact are deleted together when you delete the pact resource for that
    # consumer version, and when that happens, this row will cascade delete.

    create_table(:latest_pact_publication_ids_for_consumer_versions, charset: "utf8") do
      foreign_key :consumer_id, :pacticipants, null: false, on_delete: :cascade # redundant, but speeds up queries by removing need for extra join
      foreign_key :consumer_version_id, :versions, null: false, on_delete: :cascade
      foreign_key :provider_id, :pacticipants, null: false, on_delete: :cascade
      foreign_key :pact_publication_id, :pact_publications, null: false, on_delete: :cascade, unique: true
      foreign_key :pact_version_id, :pact_versions, null: false, on_delete: :cascade
      index [:provider_id, :consumer_version_id], unique: true, name: "unq_latest_ppid_prov_conver"
      index [:provider_id, :consumer_id], name: "lpp_provider_id_consumer_id_index"
    end
  end

  down do
    drop_table(:latest_pact_publication_ids_for_consumer_versions)
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
pact_broker-2.83.0 db/migrations/20180720_create_latest_pact_publication_ids.rb
pact_broker-2.82.0 db/migrations/20180720_create_latest_pact_publication_ids.rb
pact_broker-2.81.0 db/migrations/20180720_create_latest_pact_publication_ids.rb
pact_broker-2.80.0 db/migrations/20180720_create_latest_pact_publication_ids.rb