Skip to content

Commit 00ee00d

Browse files
committed
feat: expose the data migrations code as a rake task
1 parent a316b88 commit 00ee00d

File tree

4 files changed

+46
-1
lines changed

4 files changed

+46
-1
lines changed

lib/pact_broker/db.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def self.run_migrations database_connection, options = {}
2424
end
2525

2626
def self.run_data_migrations database_connection
27-
PactBroker::DB::MigrateData.(connection)
27+
PactBroker::DB::MigrateData.(database_connection)
2828
end
2929

3030
def self.validate_connection_config

lib/pact_broker/tasks.rb

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
require 'pact_broker/tasks/migration_task'
2+
require 'pact_broker/tasks/data_migration_task'
23
require 'pact_broker/tasks/version_task'
34
require 'pact_broker/tasks/clean_task'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
require 'rake/tasklib'
2+
3+
=begin
4+
5+
require 'pact_broker/tasks'
6+
7+
PactBroker::DB::DataMigrationTask.new do | task |
8+
require 'my_app/db'
9+
task.database_connection = MyApp::DB
10+
end
11+
12+
=end
13+
14+
module PactBroker
15+
module DB
16+
class DataMigrationTask < ::Rake::TaskLib
17+
18+
attr_accessor :database_connection
19+
20+
def initialize &block
21+
rake_task &block
22+
end
23+
24+
def rake_task &block
25+
namespace :pact_broker do
26+
namespace :db do
27+
desc "Run data migrations for pact broker database"
28+
task :migrate_data do | t, args |
29+
require 'pact_broker/db'
30+
instance_eval(&block)
31+
PactBroker::DB.run_data_migrations database_connection
32+
end
33+
end
34+
end
35+
end
36+
end
37+
end
38+
end

tasks/test_db.rake

+6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ PactBroker::DB::MigrationTask.new do | task |
66
task.database_connection = DB::PACT_BROKER_DB
77
end
88

9+
PactBroker::DB::DataMigrationTask.new do | task |
10+
ENV['RACK_ENV'] ||= 'test'
11+
require 'db'
12+
task.database_connection = DB::PACT_BROKER_DB
13+
end
14+
915
PactBroker::DB::VersionTask.new do | task |
1016
ENV['RACK_ENV'] ||= 'test'
1117
require 'db'

0 commit comments

Comments
 (0)