activerecord-import 1.0.2 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/test.yaml +151 -0
- data/.gitignore +5 -0
- data/.rubocop.yml +74 -8
- data/.rubocop_todo.yml +10 -16
- data/Brewfile +3 -1
- data/CHANGELOG.md +138 -3
- data/Dockerfile +23 -0
- data/Gemfile +24 -14
- data/LICENSE +21 -56
- data/README.markdown +108 -60
- data/Rakefile +3 -0
- data/activerecord-import.gemspec +6 -5
- data/benchmarks/benchmark.rb +10 -4
- data/benchmarks/lib/base.rb +4 -2
- data/benchmarks/lib/cli_parser.rb +4 -2
- data/benchmarks/lib/float.rb +2 -0
- data/benchmarks/lib/mysql2_benchmark.rb +2 -0
- data/benchmarks/lib/output_to_csv.rb +2 -0
- data/benchmarks/lib/output_to_html.rb +4 -2
- data/benchmarks/models/test_innodb.rb +2 -0
- data/benchmarks/models/test_memory.rb +2 -0
- data/benchmarks/models/test_myisam.rb +2 -0
- data/benchmarks/schema/{mysql_schema.rb → mysql2_schema.rb} +2 -0
- data/docker-compose.yml +34 -0
- data/gemfiles/4.2.gemfile +2 -0
- data/gemfiles/5.0.gemfile +2 -0
- data/gemfiles/5.1.gemfile +2 -0
- data/gemfiles/5.2.gemfile +2 -0
- data/gemfiles/6.0.gemfile +4 -1
- data/gemfiles/6.1.gemfile +4 -1
- data/gemfiles/7.0.gemfile +4 -0
- data/gemfiles/7.1.gemfile +3 -0
- data/lib/activerecord-import/active_record/adapters/abstract_adapter.rb +2 -0
- data/lib/activerecord-import/active_record/adapters/jdbcmysql_adapter.rb +6 -4
- data/lib/activerecord-import/active_record/adapters/jdbcpostgresql_adapter.rb +2 -0
- data/lib/activerecord-import/active_record/adapters/jdbcsqlite3_adapter.rb +2 -0
- data/lib/activerecord-import/active_record/adapters/mysql2_adapter.rb +2 -0
- data/lib/activerecord-import/active_record/adapters/postgresql_adapter.rb +2 -0
- data/lib/activerecord-import/active_record/adapters/seamless_database_pool_adapter.rb +2 -0
- data/lib/activerecord-import/active_record/adapters/sqlite3_adapter.rb +2 -0
- data/lib/activerecord-import/active_record/adapters/trilogy_adapter.rb +8 -0
- data/lib/activerecord-import/adapters/abstract_adapter.rb +14 -5
- data/lib/activerecord-import/adapters/em_mysql2_adapter.rb +2 -0
- data/lib/activerecord-import/adapters/mysql2_adapter.rb +2 -0
- data/lib/activerecord-import/adapters/mysql_adapter.rb +33 -25
- data/lib/activerecord-import/adapters/postgresql_adapter.rb +69 -56
- data/lib/activerecord-import/adapters/sqlite3_adapter.rb +39 -39
- data/lib/activerecord-import/adapters/trilogy_adapter.rb +7 -0
- data/lib/activerecord-import/base.rb +10 -2
- data/lib/activerecord-import/import.rb +162 -65
- data/lib/activerecord-import/mysql2.rb +2 -0
- data/lib/activerecord-import/postgresql.rb +2 -0
- data/lib/activerecord-import/sqlite3.rb +2 -0
- data/lib/activerecord-import/synchronize.rb +3 -1
- data/lib/activerecord-import/value_sets_parser.rb +5 -0
- data/lib/activerecord-import/version.rb +3 -1
- data/lib/activerecord-import.rb +2 -1
- data/test/adapters/jdbcmysql.rb +2 -0
- data/test/adapters/jdbcpostgresql.rb +2 -0
- data/test/adapters/jdbcsqlite3.rb +2 -0
- data/test/adapters/makara_postgis.rb +2 -0
- data/test/adapters/mysql2.rb +2 -0
- data/test/adapters/mysql2_makara.rb +2 -0
- data/test/adapters/mysql2spatial.rb +2 -0
- data/test/adapters/postgis.rb +2 -0
- data/test/adapters/postgresql.rb +2 -0
- data/test/adapters/postgresql_makara.rb +2 -0
- data/test/adapters/seamless_database_pool.rb +2 -0
- data/test/adapters/spatialite.rb +2 -0
- data/test/adapters/sqlite3.rb +2 -0
- data/test/adapters/trilogy.rb +9 -0
- data/test/database.yml.sample +7 -0
- data/test/{travis → github}/database.yml +7 -1
- data/test/import_test.rb +93 -2
- data/test/jdbcmysql/import_test.rb +5 -3
- data/test/jdbcpostgresql/import_test.rb +4 -2
- data/test/jdbcsqlite3/import_test.rb +4 -2
- data/test/makara_postgis/import_test.rb +4 -2
- data/test/models/account.rb +2 -0
- data/test/models/alarm.rb +2 -0
- data/test/models/animal.rb +8 -0
- data/test/models/author.rb +7 -0
- data/test/models/bike_maker.rb +3 -0
- data/test/models/book.rb +7 -2
- data/test/models/car.rb +2 -0
- data/test/models/card.rb +5 -0
- data/test/models/chapter.rb +2 -0
- data/test/models/composite_book.rb +19 -0
- data/test/models/composite_chapter.rb +9 -0
- data/test/models/customer.rb +18 -0
- data/test/models/deck.rb +8 -0
- data/test/models/dictionary.rb +2 -0
- data/test/models/discount.rb +2 -0
- data/test/models/end_note.rb +2 -0
- data/test/models/group.rb +2 -0
- data/test/models/order.rb +17 -0
- data/test/models/playing_card.rb +4 -0
- data/test/models/promotion.rb +2 -0
- data/test/models/question.rb +2 -0
- data/test/models/rule.rb +2 -0
- data/test/models/tag.rb +9 -1
- data/test/models/tag_alias.rb +11 -0
- data/test/models/topic.rb +7 -0
- data/test/models/user.rb +2 -0
- data/test/models/user_token.rb +2 -0
- data/test/models/vendor.rb +2 -0
- data/test/models/widget.rb +2 -0
- data/test/mysql2/import_test.rb +5 -3
- data/test/mysql2_makara/import_test.rb +5 -3
- data/test/mysqlspatial2/import_test.rb +5 -3
- data/test/postgis/import_test.rb +4 -2
- data/test/postgresql/import_test.rb +4 -2
- data/test/schema/generic_schema.rb +37 -1
- data/test/schema/jdbcpostgresql_schema.rb +3 -1
- data/test/schema/mysql2_schema.rb +2 -0
- data/test/schema/postgis_schema.rb +3 -1
- data/test/schema/postgresql_schema.rb +47 -0
- data/test/schema/sqlite3_schema.rb +2 -0
- data/test/schema/version.rb +2 -0
- data/test/sqlite3/import_test.rb +4 -2
- data/test/support/active_support/test_case_extensions.rb +2 -0
- data/test/support/assertions.rb +2 -0
- data/test/support/factories.rb +2 -0
- data/test/support/generate.rb +4 -2
- data/test/support/mysql/import_examples.rb +2 -1
- data/test/support/postgresql/import_examples.rb +108 -2
- data/test/support/shared_examples/on_duplicate_key_ignore.rb +2 -0
- data/test/support/shared_examples/on_duplicate_key_update.rb +78 -9
- data/test/support/shared_examples/recursive_import.rb +98 -1
- data/test/support/sqlite3/import_examples.rb +2 -1
- data/test/synchronize_test.rb +2 -0
- data/test/test_helper.rb +33 -6
- data/test/trilogy/import_test.rb +7 -0
- data/test/value_sets_bytes_parser_test.rb +3 -1
- data/test/value_sets_records_parser_test.rb +3 -1
- metadata +42 -16
- data/.travis.yml +0 -70
- data/gemfiles/3.2.gemfile +0 -2
- data/gemfiles/4.0.gemfile +0 -2
- data/gemfiles/4.1.gemfile +0 -2
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
def should_support_recursive_import
|
|
2
4
|
describe "importing objects with associations" do
|
|
3
5
|
let(:new_topics) { Build(num_topics, :topic_with_book) }
|
|
@@ -138,6 +140,15 @@ def should_support_recursive_import
|
|
|
138
140
|
books.each do |book|
|
|
139
141
|
assert_equal book.topic_id, second_new_topic.id
|
|
140
142
|
end
|
|
143
|
+
|
|
144
|
+
books.each { |book| book.topic_id = nil }
|
|
145
|
+
assert_no_difference "Book.count", books.size do
|
|
146
|
+
Book.import books, validate: false, on_duplicate_key_update: [:topic_id]
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
books.each do |book|
|
|
150
|
+
assert_nil book.topic_id, nil
|
|
151
|
+
end
|
|
141
152
|
end
|
|
142
153
|
|
|
143
154
|
unless ENV["SKIP_COMPOSITE_PK"]
|
|
@@ -154,6 +165,24 @@ def should_support_recursive_import
|
|
|
154
165
|
assert_equal 1, tags[0].tag_id
|
|
155
166
|
assert_equal 2, tags[1].tag_id
|
|
156
167
|
end
|
|
168
|
+
|
|
169
|
+
if ENV['AR_VERSION'].to_f >= 7.1
|
|
170
|
+
it "should import models with auto-incrementing ID successfully with recursive set to true" do
|
|
171
|
+
author = Author.create!(name: "Foo Barson")
|
|
172
|
+
books = []
|
|
173
|
+
2.times do |i|
|
|
174
|
+
books << CompositeBook.new(author_id: author.id, title: "Book #{i}", composite_chapters: [
|
|
175
|
+
CompositeChapter.new(title: "Book #{i} composite chapter 1"),
|
|
176
|
+
CompositeChapter.new(title: "Book #{i} composite chapter 2"),
|
|
177
|
+
])
|
|
178
|
+
end
|
|
179
|
+
assert_difference "CompositeBook.count", +2 do
|
|
180
|
+
assert_difference "CompositeChapter.count", +4 do
|
|
181
|
+
CompositeBook.import books, recursive: true
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
end
|
|
157
186
|
end
|
|
158
187
|
end
|
|
159
188
|
|
|
@@ -167,7 +196,7 @@ def should_support_recursive_import
|
|
|
167
196
|
end
|
|
168
197
|
end
|
|
169
198
|
|
|
170
|
-
# If adapter supports on_duplicate_key_update, it is only applied to top level models so that SQL with invalid
|
|
199
|
+
# If adapter supports on_duplicate_key_update and specific columns are specified, it is only applied to top level models so that SQL with invalid
|
|
171
200
|
# columns, keys, etc isn't generated for child associations when doing recursive import
|
|
172
201
|
if ActiveRecord::Base.connection.supports_on_duplicate_key_update?
|
|
173
202
|
describe "on_duplicate_key_update" do
|
|
@@ -181,6 +210,74 @@ def should_support_recursive_import
|
|
|
181
210
|
end
|
|
182
211
|
end
|
|
183
212
|
end
|
|
213
|
+
|
|
214
|
+
context "when :all fields are updated" do
|
|
215
|
+
setup do
|
|
216
|
+
Topic.import new_topics, recursive: true
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
it "updates associated objects" do
|
|
220
|
+
new_author_name = 'Richard Bachman'
|
|
221
|
+
topic = new_topics.first
|
|
222
|
+
topic.books.each do |book|
|
|
223
|
+
book.author_name = new_author_name
|
|
224
|
+
end
|
|
225
|
+
assert_nothing_raised do
|
|
226
|
+
Topic.import new_topics, recursive: true, on_duplicate_key_update: :all
|
|
227
|
+
end
|
|
228
|
+
Topic.find(topic.id).books.each do |book|
|
|
229
|
+
assert_equal new_author_name, book.author_name
|
|
230
|
+
end
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
describe "recursive_on_duplicate_key_update" do
|
|
236
|
+
let(:new_topics) { Build(1, :topic_with_book) }
|
|
237
|
+
|
|
238
|
+
setup do
|
|
239
|
+
Topic.import new_topics, recursive: true
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
it "updates associated objects" do
|
|
243
|
+
new_author_name = 'Richard Bachman'
|
|
244
|
+
topic = new_topics.first
|
|
245
|
+
topic.books.each do |book|
|
|
246
|
+
book.author_name = new_author_name
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
assert_nothing_raised do
|
|
250
|
+
Topic.import new_topics,
|
|
251
|
+
recursive: true,
|
|
252
|
+
on_duplicate_key_update: [:id],
|
|
253
|
+
recursive_on_duplicate_key_update: {
|
|
254
|
+
books: { conflict_target: [:id], columns: [:author_name] }
|
|
255
|
+
}
|
|
256
|
+
end
|
|
257
|
+
Topic.find(topic.id).books.each do |book|
|
|
258
|
+
assert_equal new_author_name, book.author_name
|
|
259
|
+
end
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
it "updates nested associated objects" do
|
|
263
|
+
new_chapter_title = 'The Final Chapter'
|
|
264
|
+
book = new_topics.first.books.first
|
|
265
|
+
book.author_name = 'Richard Bachman'
|
|
266
|
+
|
|
267
|
+
example_chapter = book.chapters.first
|
|
268
|
+
example_chapter.title = new_chapter_title
|
|
269
|
+
|
|
270
|
+
assert_nothing_raised do
|
|
271
|
+
Topic.import new_topics,
|
|
272
|
+
recursive: true,
|
|
273
|
+
on_duplicate_key_update: [:id],
|
|
274
|
+
recursive_on_duplicate_key_update: {
|
|
275
|
+
books: { conflict_target: [:id], columns: [:author_name] },
|
|
276
|
+
chapters: { conflict_target: [:id], columns: [:title] }
|
|
277
|
+
}
|
|
278
|
+
end
|
|
279
|
+
assert_equal new_chapter_title, Chapter.find(example_chapter.id).title
|
|
280
|
+
end
|
|
184
281
|
end
|
|
185
282
|
end
|
|
186
283
|
|
data/test/synchronize_test.rb
CHANGED
data/test/test_helper.rb
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'pathname'
|
|
4
|
+
require 'rake'
|
|
2
5
|
test_dir = Pathname.new File.dirname(__FILE__)
|
|
3
6
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
4
7
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
@@ -21,7 +24,7 @@ if ActiveSupport::VERSION::STRING < "4.0"
|
|
|
21
24
|
require 'mocha/test_unit'
|
|
22
25
|
else
|
|
23
26
|
require 'active_support/testing/autorun'
|
|
24
|
-
require "mocha/
|
|
27
|
+
require "mocha/minitest"
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
require 'timecop'
|
|
@@ -30,7 +33,9 @@ require 'chronic'
|
|
|
30
33
|
begin
|
|
31
34
|
require 'composite_primary_keys'
|
|
32
35
|
rescue LoadError
|
|
33
|
-
ENV[
|
|
36
|
+
if ENV['AR_VERSION'].to_f <= 7.1
|
|
37
|
+
ENV['SKIP_COMPOSITE_PK'] = 'true'
|
|
38
|
+
end
|
|
34
39
|
end
|
|
35
40
|
|
|
36
41
|
# Support MySQL 5.7
|
|
@@ -48,8 +53,30 @@ adapter = ENV["ARE_DB"] || "sqlite3"
|
|
|
48
53
|
FileUtils.mkdir_p 'log'
|
|
49
54
|
ActiveRecord::Base.logger = Logger.new("log/test.log")
|
|
50
55
|
ActiveRecord::Base.logger.level = Logger::DEBUG
|
|
51
|
-
|
|
52
|
-
ActiveRecord
|
|
56
|
+
|
|
57
|
+
if ActiveRecord.respond_to?(:use_yaml_unsafe_load)
|
|
58
|
+
ActiveRecord.use_yaml_unsafe_load = true
|
|
59
|
+
elsif ActiveRecord::Base.respond_to?(:use_yaml_unsafe_load)
|
|
60
|
+
ActiveRecord::Base.use_yaml_unsafe_load = true
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
if ENV['AR_VERSION'].to_f >= 6.0
|
|
64
|
+
yaml_config = if Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.2.1')
|
|
65
|
+
YAML.safe_load_file(test_dir.join("database.yml"), aliases: true)[adapter]
|
|
66
|
+
else
|
|
67
|
+
YAML.load_file(test_dir.join("database.yml"))[adapter]
|
|
68
|
+
end
|
|
69
|
+
config = ActiveRecord::DatabaseConfigurations::HashConfig.new("test", adapter, yaml_config)
|
|
70
|
+
ActiveRecord::Base.configurations.configurations << config
|
|
71
|
+
else
|
|
72
|
+
ActiveRecord::Base.configurations["test"] = YAML.load_file(test_dir.join("database.yml"))[adapter]
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
if ActiveRecord.respond_to?(:default_timezone)
|
|
76
|
+
ActiveRecord.default_timezone = :utc
|
|
77
|
+
else
|
|
78
|
+
ActiveRecord::Base.default_timezone = :utc
|
|
79
|
+
end
|
|
53
80
|
|
|
54
81
|
require "activerecord-import"
|
|
55
82
|
ActiveRecord::Base.establish_connection :test
|
|
@@ -59,7 +86,7 @@ ActiveSupport::Notifications.subscribe(/active_record.sql/) do |_, _, _, _, hsh|
|
|
|
59
86
|
end
|
|
60
87
|
|
|
61
88
|
require "factory_bot"
|
|
62
|
-
Dir[File.dirname(__FILE__)
|
|
89
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].sort.each { |file| require file }
|
|
63
90
|
|
|
64
91
|
# Load base/generic schema
|
|
65
92
|
require test_dir.join("schema/version")
|
|
@@ -67,7 +94,7 @@ require test_dir.join("schema/generic_schema")
|
|
|
67
94
|
adapter_schema = test_dir.join("schema/#{adapter}_schema.rb")
|
|
68
95
|
require adapter_schema if File.exist?(adapter_schema)
|
|
69
96
|
|
|
70
|
-
Dir[File.dirname(__FILE__)
|
|
97
|
+
Dir["#{File.dirname(__FILE__)}/models/*.rb"].sort.each { |file| require file }
|
|
71
98
|
|
|
72
99
|
# Prevent this deprecation warning from breaking the tests.
|
|
73
100
|
Rake::FileList.send(:remove_method, :import)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require File.expand_path("#{File.dirname(__FILE__)}/../test_helper")
|
|
4
|
+
require File.expand_path("#{File.dirname(__FILE__)}/../support/assertions")
|
|
5
|
+
require File.expand_path("#{File.dirname(__FILE__)}/../support/mysql/import_examples")
|
|
6
|
+
|
|
7
|
+
should_support_mysql_import_functionality
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: activerecord-import
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0
|
|
4
|
+
version: 1.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Zach Dennis
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-05-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '4.2'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '4.2'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -45,12 +45,13 @@ executables: []
|
|
|
45
45
|
extensions: []
|
|
46
46
|
extra_rdoc_files: []
|
|
47
47
|
files:
|
|
48
|
+
- ".github/workflows/test.yaml"
|
|
48
49
|
- ".gitignore"
|
|
49
50
|
- ".rubocop.yml"
|
|
50
51
|
- ".rubocop_todo.yml"
|
|
51
|
-
- ".travis.yml"
|
|
52
52
|
- Brewfile
|
|
53
53
|
- CHANGELOG.md
|
|
54
|
+
- Dockerfile
|
|
54
55
|
- Gemfile
|
|
55
56
|
- LICENSE
|
|
56
57
|
- README.markdown
|
|
@@ -67,16 +68,16 @@ files:
|
|
|
67
68
|
- benchmarks/models/test_innodb.rb
|
|
68
69
|
- benchmarks/models/test_memory.rb
|
|
69
70
|
- benchmarks/models/test_myisam.rb
|
|
70
|
-
- benchmarks/schema/
|
|
71
|
-
-
|
|
72
|
-
- gemfiles/4.0.gemfile
|
|
73
|
-
- gemfiles/4.1.gemfile
|
|
71
|
+
- benchmarks/schema/mysql2_schema.rb
|
|
72
|
+
- docker-compose.yml
|
|
74
73
|
- gemfiles/4.2.gemfile
|
|
75
74
|
- gemfiles/5.0.gemfile
|
|
76
75
|
- gemfiles/5.1.gemfile
|
|
77
76
|
- gemfiles/5.2.gemfile
|
|
78
77
|
- gemfiles/6.0.gemfile
|
|
79
78
|
- gemfiles/6.1.gemfile
|
|
79
|
+
- gemfiles/7.0.gemfile
|
|
80
|
+
- gemfiles/7.1.gemfile
|
|
80
81
|
- lib/activerecord-import.rb
|
|
81
82
|
- lib/activerecord-import/active_record/adapters/abstract_adapter.rb
|
|
82
83
|
- lib/activerecord-import/active_record/adapters/jdbcmysql_adapter.rb
|
|
@@ -86,12 +87,14 @@ files:
|
|
|
86
87
|
- lib/activerecord-import/active_record/adapters/postgresql_adapter.rb
|
|
87
88
|
- lib/activerecord-import/active_record/adapters/seamless_database_pool_adapter.rb
|
|
88
89
|
- lib/activerecord-import/active_record/adapters/sqlite3_adapter.rb
|
|
90
|
+
- lib/activerecord-import/active_record/adapters/trilogy_adapter.rb
|
|
89
91
|
- lib/activerecord-import/adapters/abstract_adapter.rb
|
|
90
92
|
- lib/activerecord-import/adapters/em_mysql2_adapter.rb
|
|
91
93
|
- lib/activerecord-import/adapters/mysql2_adapter.rb
|
|
92
94
|
- lib/activerecord-import/adapters/mysql_adapter.rb
|
|
93
95
|
- lib/activerecord-import/adapters/postgresql_adapter.rb
|
|
94
96
|
- lib/activerecord-import/adapters/sqlite3_adapter.rb
|
|
97
|
+
- lib/activerecord-import/adapters/trilogy_adapter.rb
|
|
95
98
|
- lib/activerecord-import/base.rb
|
|
96
99
|
- lib/activerecord-import/import.rb
|
|
97
100
|
- lib/activerecord-import/mysql2.rb
|
|
@@ -113,7 +116,9 @@ files:
|
|
|
113
116
|
- test/adapters/seamless_database_pool.rb
|
|
114
117
|
- test/adapters/spatialite.rb
|
|
115
118
|
- test/adapters/sqlite3.rb
|
|
119
|
+
- test/adapters/trilogy.rb
|
|
116
120
|
- test/database.yml.sample
|
|
121
|
+
- test/github/database.yml
|
|
117
122
|
- test/import_test.rb
|
|
118
123
|
- test/jdbcmysql/import_test.rb
|
|
119
124
|
- test/jdbcpostgresql/import_test.rb
|
|
@@ -121,18 +126,28 @@ files:
|
|
|
121
126
|
- test/makara_postgis/import_test.rb
|
|
122
127
|
- test/models/account.rb
|
|
123
128
|
- test/models/alarm.rb
|
|
129
|
+
- test/models/animal.rb
|
|
130
|
+
- test/models/author.rb
|
|
124
131
|
- test/models/bike_maker.rb
|
|
125
132
|
- test/models/book.rb
|
|
126
133
|
- test/models/car.rb
|
|
134
|
+
- test/models/card.rb
|
|
127
135
|
- test/models/chapter.rb
|
|
136
|
+
- test/models/composite_book.rb
|
|
137
|
+
- test/models/composite_chapter.rb
|
|
138
|
+
- test/models/customer.rb
|
|
139
|
+
- test/models/deck.rb
|
|
128
140
|
- test/models/dictionary.rb
|
|
129
141
|
- test/models/discount.rb
|
|
130
142
|
- test/models/end_note.rb
|
|
131
143
|
- test/models/group.rb
|
|
144
|
+
- test/models/order.rb
|
|
145
|
+
- test/models/playing_card.rb
|
|
132
146
|
- test/models/promotion.rb
|
|
133
147
|
- test/models/question.rb
|
|
134
148
|
- test/models/rule.rb
|
|
135
149
|
- test/models/tag.rb
|
|
150
|
+
- test/models/tag_alias.rb
|
|
136
151
|
- test/models/topic.rb
|
|
137
152
|
- test/models/user.rb
|
|
138
153
|
- test/models/user_token.rb
|
|
@@ -163,12 +178,12 @@ files:
|
|
|
163
178
|
- test/support/sqlite3/import_examples.rb
|
|
164
179
|
- test/synchronize_test.rb
|
|
165
180
|
- test/test_helper.rb
|
|
166
|
-
- test/
|
|
181
|
+
- test/trilogy/import_test.rb
|
|
167
182
|
- test/value_sets_bytes_parser_test.rb
|
|
168
183
|
- test/value_sets_records_parser_test.rb
|
|
169
|
-
homepage:
|
|
184
|
+
homepage: https://github.com/zdennis/activerecord-import
|
|
170
185
|
licenses:
|
|
171
|
-
-
|
|
186
|
+
- MIT
|
|
172
187
|
metadata: {}
|
|
173
188
|
post_install_message:
|
|
174
189
|
rdoc_options: []
|
|
@@ -178,15 +193,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
178
193
|
requirements:
|
|
179
194
|
- - ">="
|
|
180
195
|
- !ruby/object:Gem::Version
|
|
181
|
-
version:
|
|
196
|
+
version: 2.4.0
|
|
182
197
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
198
|
requirements:
|
|
184
199
|
- - ">="
|
|
185
200
|
- !ruby/object:Gem::Version
|
|
186
201
|
version: '0'
|
|
187
202
|
requirements: []
|
|
188
|
-
|
|
189
|
-
rubygems_version: 2.7.8
|
|
203
|
+
rubygems_version: 3.0.3.1
|
|
190
204
|
signing_key:
|
|
191
205
|
specification_version: 4
|
|
192
206
|
summary: Bulk insert extension for ActiveRecord
|
|
@@ -204,7 +218,9 @@ test_files:
|
|
|
204
218
|
- test/adapters/seamless_database_pool.rb
|
|
205
219
|
- test/adapters/spatialite.rb
|
|
206
220
|
- test/adapters/sqlite3.rb
|
|
221
|
+
- test/adapters/trilogy.rb
|
|
207
222
|
- test/database.yml.sample
|
|
223
|
+
- test/github/database.yml
|
|
208
224
|
- test/import_test.rb
|
|
209
225
|
- test/jdbcmysql/import_test.rb
|
|
210
226
|
- test/jdbcpostgresql/import_test.rb
|
|
@@ -212,18 +228,28 @@ test_files:
|
|
|
212
228
|
- test/makara_postgis/import_test.rb
|
|
213
229
|
- test/models/account.rb
|
|
214
230
|
- test/models/alarm.rb
|
|
231
|
+
- test/models/animal.rb
|
|
232
|
+
- test/models/author.rb
|
|
215
233
|
- test/models/bike_maker.rb
|
|
216
234
|
- test/models/book.rb
|
|
217
235
|
- test/models/car.rb
|
|
236
|
+
- test/models/card.rb
|
|
218
237
|
- test/models/chapter.rb
|
|
238
|
+
- test/models/composite_book.rb
|
|
239
|
+
- test/models/composite_chapter.rb
|
|
240
|
+
- test/models/customer.rb
|
|
241
|
+
- test/models/deck.rb
|
|
219
242
|
- test/models/dictionary.rb
|
|
220
243
|
- test/models/discount.rb
|
|
221
244
|
- test/models/end_note.rb
|
|
222
245
|
- test/models/group.rb
|
|
246
|
+
- test/models/order.rb
|
|
247
|
+
- test/models/playing_card.rb
|
|
223
248
|
- test/models/promotion.rb
|
|
224
249
|
- test/models/question.rb
|
|
225
250
|
- test/models/rule.rb
|
|
226
251
|
- test/models/tag.rb
|
|
252
|
+
- test/models/tag_alias.rb
|
|
227
253
|
- test/models/topic.rb
|
|
228
254
|
- test/models/user.rb
|
|
229
255
|
- test/models/user_token.rb
|
|
@@ -254,6 +280,6 @@ test_files:
|
|
|
254
280
|
- test/support/sqlite3/import_examples.rb
|
|
255
281
|
- test/synchronize_test.rb
|
|
256
282
|
- test/test_helper.rb
|
|
257
|
-
- test/
|
|
283
|
+
- test/trilogy/import_test.rb
|
|
258
284
|
- test/value_sets_bytes_parser_test.rb
|
|
259
285
|
- test/value_sets_records_parser_test.rb
|
data/.travis.yml
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
language: ruby
|
|
2
|
-
cache: bundler
|
|
3
|
-
rvm:
|
|
4
|
-
- 2.5.5
|
|
5
|
-
|
|
6
|
-
env:
|
|
7
|
-
global:
|
|
8
|
-
# https://github.com/discourse/discourse/blob/master/.travis.yml
|
|
9
|
-
- RUBY_GC_MALLOC_LIMIT=50000000
|
|
10
|
-
matrix:
|
|
11
|
-
- AR_VERSION=5.1
|
|
12
|
-
- AR_VERSION=5.2
|
|
13
|
-
- AR_VERSION=6.0
|
|
14
|
-
|
|
15
|
-
matrix:
|
|
16
|
-
include:
|
|
17
|
-
- rvm: 2.3.8
|
|
18
|
-
env: AR_VERSION=3.2
|
|
19
|
-
- rvm: 2.3.8
|
|
20
|
-
env: AR_VERSION=4.0
|
|
21
|
-
- rvm: 2.3.8
|
|
22
|
-
env: AR_VERSION=4.1
|
|
23
|
-
- rvm: 2.3.8
|
|
24
|
-
env: AR_VERSION=4.2
|
|
25
|
-
- rvm: 2.3.8
|
|
26
|
-
env: AR_VERSION=5.0
|
|
27
|
-
|
|
28
|
-
fast_finish: true
|
|
29
|
-
|
|
30
|
-
addons:
|
|
31
|
-
postgresql: "9.5"
|
|
32
|
-
apt:
|
|
33
|
-
sources:
|
|
34
|
-
- travis-ci/sqlite3
|
|
35
|
-
- mysql-5.7-trusty
|
|
36
|
-
packages:
|
|
37
|
-
- sqlite3
|
|
38
|
-
- mysql-server
|
|
39
|
-
- mysql-client
|
|
40
|
-
- postgresql-9.5-postgis-2.3
|
|
41
|
-
|
|
42
|
-
before_install:
|
|
43
|
-
- gem update --system
|
|
44
|
-
- sudo mysql -e "use mysql; update user set authentication_string=PASSWORD('') where User='root'; update user set plugin='mysql_native_password';FLUSH PRIVILEGES;"
|
|
45
|
-
- sudo mysql_upgrade
|
|
46
|
-
- sudo service mysql restart
|
|
47
|
-
|
|
48
|
-
before_script:
|
|
49
|
-
- mysql -e 'create database activerecord_import_test;'
|
|
50
|
-
- psql -c 'create database activerecord_import_test;' -U postgres
|
|
51
|
-
- psql activerecord_import_test -c 'create extension if not exists hstore;' -U postgres
|
|
52
|
-
- psql -c 'create extension if not exists postgis;' -U postgres
|
|
53
|
-
- psql -c 'create extension if not exists "uuid-ossp";' -U postgres
|
|
54
|
-
- cp test/travis/database.yml test/database.yml
|
|
55
|
-
|
|
56
|
-
script:
|
|
57
|
-
- bundle exec rake test:mysql2
|
|
58
|
-
- bundle exec rake test:mysql2_makara
|
|
59
|
-
- bundle exec rake test:mysql2spatial
|
|
60
|
-
- bundle exec rake test:postgis
|
|
61
|
-
- bundle exec rake test:postgresql
|
|
62
|
-
- bundle exec rake test:postgresql_makara
|
|
63
|
-
- bundle exec rake test:seamless_database_pool
|
|
64
|
-
- bundle exec rake test:spatialite
|
|
65
|
-
- bundle exec rake test:sqlite3
|
|
66
|
-
- bundle exec rubocop
|
|
67
|
-
|
|
68
|
-
dist: trusty
|
|
69
|
-
|
|
70
|
-
sudo: required
|
data/gemfiles/3.2.gemfile
DELETED
data/gemfiles/4.0.gemfile
DELETED
data/gemfiles/4.1.gemfile
DELETED