Sha256: d3f6746d02a490fabdfa812f9e66c86ca4e42e1e86d131729118a1ae3922f235

Contents?: true

Size: 1.39 KB

Versions: 44

Compression:

Stored size: 1.39 KB

Contents

require "pact_broker/db/data_migrations/helpers"

module PactBroker
  module DB
    module DataMigrations
      class SetPacticipantIdsForVerifications
        def self.call connection
          if columns_exist?(connection)
            query = "UPDATE verifications
                    SET consumer_id = (SELECT consumer_id
                      FROM pact_versions
                      WHERE id = verifications.pact_version_id),
                     provider_id = (SELECT provider_id
                      FROM pact_versions
                      WHERE id = verifications.pact_version_id)
                    WHERE consumer_id is null
                    OR provider_id is null"
            connection.run(query)
          end
        end

        def self.columns_exist?(connection)
          column_exists?(connection, :verifications, :provider_id) &&
            column_exists?(connection, :verifications, :consumer_id) &&
            column_exists?(connection, :verifications, :provider_version_id) &&
            column_exists?(connection, :pact_versions, :provider_id) &&
            column_exists?(connection, :pact_versions, :consumer_id) &&
            column_exists?(connection, :pact_versions, :id)
        end

        def self.column_exists?(connection, table, column)
          connection.table_exists?(table) && connection.schema(table).find{|col| col.first == column }
        end
      end
    end
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
pact_broker-2.96.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.95.1 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.95.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.94.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.93.4 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.93.3 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.93.2 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.93.1 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.93.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.92.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.91.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.90.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.89.1 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.89.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.88.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.87.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.86.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.85.1 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.85.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
pact_broker-2.84.0 lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb