Sha256: 36b0f545e1885040c48a8d432f2551da4f685b8fdd1481e9bb64d6967ebfa383

Contents?: true

Size: 1.05 KB

Versions: 45

Compression:

Stored size: 1.05 KB

Contents

require "pact_broker/db/data_migrations/helpers"

module PactBroker
  module DB
    module DataMigrations
      class SetConsumerIdsForPactPublications
        def self.call connection
          if columns_exist?(connection)
            query = "UPDATE pact_publications
                    SET consumer_id = (SELECT pacticipant_id
                      FROM versions
                      WHERE id = pact_publications.consumer_version_id)
                    WHERE consumer_id is null"
            connection.run(query)
          end
        end

        def self.columns_exist?(connection)
          column_exists?(connection, :pact_publications, :consumer_id) &&
            column_exists?(connection, :pact_publications, :id) &&
            column_exists?(connection, :versions, :id) &&
            column_exists?(connection, :versions, :pacticipant_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

45 entries across 45 versions & 1 rubygems

Version Path
pact_broker-2.113.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.112.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.111.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.109.1 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.109.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.108.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.107.1 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.107.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.107.0.beta.1 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.106.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.105.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.104.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.103.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.102.2 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.102.1 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.102.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.101.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.100.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.99.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
pact_broker-2.98.0 lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb