Skip to content

Commit e23d4aa

Browse files
committed
refactor
1 parent ca8561d commit e23d4aa

File tree

1 file changed

+29
-10
lines changed

1 file changed

+29
-10
lines changed

ruby_event_store-active_record/lib/ruby_event_store/active_record/tasks/migration_tasks.rake

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,52 @@ require_relative "../generators/migration_generator"
22

33
desc "Generate migration"
44
task "db:migrations:copy" do
5-
data_type =
6-
ENV["DATA_TYPE"] || raise("Specify data type (binary, json, jsonb): rake db:migrations:copy DATA_TYPE=json")
7-
::ActiveRecord::Base.establish_connection(ENV["DATABASE_URL"])
8-
database_adapter =
9-
RubyEventStore::ActiveRecord::DatabaseAdapter.from_string(::ActiveRecord::Base.connection.adapter_name, data_type)
5+
task = MigrationTask.new("db:migrations:copy")
6+
task.establish_connection
107

118
path =
12-
RubyEventStore::ActiveRecord::MigrationGenerator.new.call(database_adapter, ENV["MIGRATION_PATH"] || "db/migrate")
9+
RubyEventStore::ActiveRecord::MigrationGenerator.new.call(task.adapter, task.migration_path)
1310

1411
puts "Migration file created #{path}"
1512
end
1613

1714
desc "Generate migration for missing event_id index"
1815
task "db:migrations:fix_missing_event_id_index" do
19-
::ActiveRecord::Base.establish_connection(ENV["DATABASE_URL"])
16+
task = MigrationTask.new("db:migrations:fix_missing_event_id_index")
17+
task.establish_connection
2018

21-
path = RubyEventStore::ActiveRecord::EventIdIndexMigrationGenerator.new.call(ENV["MIGRATION_PATH"] || "db/migrate")
19+
path = RubyEventStore::ActiveRecord::EventIdIndexMigrationGenerator.new.call(task.migration_path)
2220

2321
puts "Migration file created #{path}"
2422
end
2523

2624
desc "Generate migration for adding foreign key on event_store_events_in_streams.event_id"
2725
task "db:migrations:add_foreign_key_on_event_id" do
28-
::ActiveRecord::Base.establish_connection(ENV["DATABASE_URL"])
26+
task = MigrationTask.new("db:migrations:add_foreign_key_on_event_id")
27+
task.establish_connection
2928

3029
path =
31-
RubyEventStore::ActiveRecord::ForeignKeyOnEventIdMigrationGenerator.new.call(ENV["MIGRATION_PATH"] || "db/migrate")
30+
RubyEventStore::ActiveRecord::ForeignKeyOnEventIdMigrationGenerator.new.call(task.migration_path)
3231

3332
puts "Migration file created #{path}"
3433
end
34+
35+
class MigrationTask
36+
def initialize(task)
37+
@task = task
38+
end
39+
40+
def establish_connection
41+
::ActiveRecord::Base.establish_connection(ENV["DATABASE_URL"])
42+
end
43+
44+
def adapter
45+
data_type = ENV["DATA_TYPE"] || raise("Specify data type (binary, json, jsonb): rake #{@task} DATA_TYPE=json")
46+
47+
RubyEventStore::ActiveRecord::DatabaseAdapter.from_string(::ActiveRecord::Base.connection.adapter_name, data_type)
48+
end
49+
50+
def migration_path
51+
ENV["MIGRATION_PATH"] || "db/migrate"
52+
end
53+
end

0 commit comments

Comments
 (0)