Skip to content

Commit 5d65109

Browse files
committed
add mysql record
1 parent 71a3431 commit 5d65109

File tree

6 files changed

+48
-8
lines changed

6 files changed

+48
-8
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# frozen_string_literal: true
2+
3+
class MysqlLabel < MysqlRecord
4+
end
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# frozen_string_literal: true
2+
3+
class MysqlRecord < ActiveRecord::Base
4+
self.abstract_class = true
5+
if ActiveRecord::Base.configurations.configs_for(env_name: 'test', name: 'secondary')
6+
establish_connection :secondary
7+
end
8+
end

test/dummy/app/models/mysql_tag.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# frozen_string_literal: true
2+
3+
class MysqlTag < MysqlRecord
4+
after_save do
5+
MysqlTagAudit.create(tag_name: name)
6+
MysqlLabel.create(name: name)
7+
end
8+
end
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# frozen_string_literal: true
2+
3+
class MysqlTagAudit < MysqlRecord
4+
end

test/dummy/config/database.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
default: &default
2-
url: <%= ENV['DATABASE_URL'] %>
32
pool: 20
43
properties:
54
allowPublicKeyRetrieval: true
65

7-
development:
8-
<<: *default
9-
106
test:
11-
<<: *default
7+
primary:
8+
<<: *default
9+
url: <%= ENV['DATABASE_URL_PG'] %>
10+
secondary:
11+
<<: *default
12+
url: <%= ENV['DATABASE_URL_MYSQL'] %>

test/test_helper.rb

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
require 'tmpdir'
99
require 'securerandom'
1010

11-
ENV['DATABASE_URL'] ||= ENV['DATABASE_URL_PG'] || ENV['DATABASE_URL_MYSQL']
12-
1311
db_config_path = File.expand_path('dummy/config/database.yml', __dir__)
1412
db_config = YAML.load(ERB.new(File.read(db_config_path)).result, aliases: true)
1513
ActiveRecord::Base.configurations = ActiveRecord::DatabaseConfigurations.new(db_config)
@@ -18,10 +16,17 @@
1816

1917
ENV['WITH_ADVISORY_LOCK_PREFIX'] ||= SecureRandom.hex
2018

21-
ActiveRecord::Base.establish_connection(:test)
19+
ActiveRecord::Base.establish_connection(:primary)
2220

2321
load File.expand_path('dummy/db/schema.rb', __dir__)
2422

23+
require_relative 'dummy/app/models/mysql_record'
24+
if MysqlRecord.connected?
25+
ActiveRecord::Base.establish_connection(:secondary)
26+
load File.expand_path('dummy/db/schema.rb', __dir__)
27+
ActiveRecord::Base.establish_connection(:primary)
28+
end
29+
2530
def env_db
2631
@env_db ||= ActiveRecord::Base.connection_db_config.adapter.to_sym
2732
end
@@ -32,6 +37,9 @@ def env_db
3237
require_relative 'dummy/app/models/tag'
3338
require_relative 'dummy/app/models/tag_audit'
3439
require_relative 'dummy/app/models/label'
40+
require_relative 'dummy/app/models/mysql_tag'
41+
require_relative 'dummy/app/models/mysql_tag_audit'
42+
require_relative 'dummy/app/models/mysql_label'
3543
require 'minitest'
3644
require 'maxitest/autorun'
3745
require 'mocha/minitest'
@@ -51,6 +59,13 @@ def is_postgresql_adapter?; adapter_support.postgresql?; end
5159
TagAudit.table_name,
5260
Label.table_name
5361
)
62+
if MysqlRecord.connected?
63+
MysqlRecord.connection.truncate_tables(
64+
MysqlTag.table_name,
65+
MysqlTagAudit.table_name,
66+
MysqlLabel.table_name
67+
)
68+
end
5469
end
5570

5671
end

0 commit comments

Comments
 (0)