From 1f467b83b8b1482de1cb81d8dc956b31edf507b8 Mon Sep 17 00:00:00 2001 From: Beth Skurrie Date: Fri, 22 Mar 2024 14:46:05 +1100 Subject: [PATCH] chore: add gem to gemspec --- lib/pact_broker/app.rb | 30 +++++++++++++++++++----------- pact_broker.gemspec | 1 + 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/lib/pact_broker/app.rb b/lib/pact_broker/app.rb index 8e74ad104..b3e241401 100644 --- a/lib/pact_broker/app.rb +++ b/lib/pact_broker/app.rb @@ -105,15 +105,7 @@ def prepare_database lock = Sequel::PostgresAdvisoryLock.new(configuration.database_connection, :migrate, :pg_advisory_lock) if configuration.auto_migrate_db lock.with_lock do - migration_options = { allow_missing_migration_files: configuration.allow_missing_migration_files } - - if PactBroker::DB.is_current?(configuration.database_connection, migration_options) - logger.info "Skipping database migrations as the latest migration has already been applied" - else - logger.info "Migrating database schema" - PactBroker::DB.run_migrations configuration.database_connection, migration_options - logger.info "Database schema version is now #{PactBroker::DB.version(configuration.database_connection)}" - end + ensure_all_database_migrations_are_applied end else logger.info "Skipping database schema migrations as database auto migrate is disabled" @@ -121,8 +113,7 @@ def prepare_database if configuration.auto_migrate_db_data lock.with_lock do - logger.info "Migrating data" - PactBroker::DB.run_data_migrations configuration.database_connection + run_data_migrations end else logger.info "Skipping data migrations" @@ -132,6 +123,23 @@ def prepare_database PactBroker::Webhooks::Service.fail_retrying_triggered_webhooks end + def ensure_all_database_migrations_are_applied + migration_options = { allow_missing_migration_files: configuration.allow_missing_migration_files } + + if PactBroker::DB.is_current?(configuration.database_connection, migration_options) + logger.info "Skipping database migrations as the latest migration has already been applied" + else + logger.info "Migrating database schema" + PactBroker::DB.run_migrations(configuration.database_connection, migration_options) + logger.info "Database schema version is now #{PactBroker::DB.version(configuration.database_connection)}" + end + end + + def run_data_migrations + logger.info "Migrating data" + PactBroker::DB.run_data_migrations(configuration.database_connection) + end + def load_configuration_from_database configuration.load_from_database! end diff --git a/pact_broker.gemspec b/pact_broker.gemspec index bb28101bf..32a714de5 100644 --- a/pact_broker.gemspec +++ b/pact_broker.gemspec @@ -73,4 +73,5 @@ Gem::Specification.new do |gem| gem.add_runtime_dependency "anyway_config", "~> 2.1" gem.add_runtime_dependency "request_store", "~> 1.5" gem.add_runtime_dependency "moments", "~> 0.2" + gem.add_runtime_dependency "sequel-pg_advisory_lock", "~>0.1" end