activerecord-import 1.5.0 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yaml +31 -2
- data/CHANGELOG.md +16 -0
- data/Dockerfile +23 -0
- data/Gemfile +12 -4
- data/README.markdown +36 -0
- data/Rakefile +1 -0
- data/docker-compose.yml +34 -0
- data/gemfiles/7.1.gemfile +3 -0
- data/lib/activerecord-import/active_record/adapters/trilogy_adapter.rb +8 -0
- data/lib/activerecord-import/adapters/trilogy_adapter.rb +7 -0
- data/lib/activerecord-import/import.rb +2 -2
- data/lib/activerecord-import/version.rb +1 -1
- data/test/adapters/trilogy.rb +9 -0
- data/test/database.yml.sample +7 -0
- data/test/github/database.yml +4 -0
- data/test/models/book.rb +1 -1
- data/test/models/customer.rb +6 -4
- data/test/models/order.rb +6 -4
- data/test/models/tag_alias.rb +3 -1
- data/test/schema/generic_schema.rb +3 -1
- data/test/schema/postgresql_schema.rb +1 -4
- data/test/support/shared_examples/on_duplicate_key_update.rb +28 -0
- data/test/support/shared_examples/recursive_import.rb +1 -1
- data/test/trilogy/import_test.rb +7 -0
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32b6a19035fc43e21eeb0c6750e622a2605daf865b05aa9d551a697768456595
|
4
|
+
data.tar.gz: 7ba72ad6b48a05f52299bf6a49a487c880c82beacda25c6d6d6510a2d87bdf47
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac0cb801e0c0883ec3f09432cb500c919fda756c22b6a4fb29bf3e0ecb3ce0aa0a8700e1112ff9340c9f5f7cdb756618eeba5dcae1ce06602216d21c82506ae4
|
7
|
+
data.tar.gz: 572f5ea800559cb5fa928d1c82f4e1ef03edac7d1bed5e4bb2849423fdd8fc01bf235f829ef2ab1d230de8832e0d078615e60fc8feb8a48a92f74bb94e7b23a9
|
data/.github/workflows/test.yaml
CHANGED
@@ -16,17 +16,36 @@ jobs:
|
|
16
16
|
--health-interval 10s
|
17
17
|
--health-timeout 5s
|
18
18
|
--health-retries 5
|
19
|
+
mysql:
|
20
|
+
image: mysql:5.7
|
21
|
+
ports:
|
22
|
+
- 3306:3306
|
23
|
+
env:
|
24
|
+
MYSQL_ROOT_PASSWORD: root
|
25
|
+
MYSQL_USER: github
|
26
|
+
MYSQL_PASSWORD: github
|
27
|
+
MYSQL_DATABASE: activerecord_import_test
|
28
|
+
options: >-
|
29
|
+
--health-cmd "mysqladmin ping -h localhost"
|
30
|
+
--health-interval 10s
|
31
|
+
--health-timeout 5s
|
32
|
+
--health-retries 5
|
19
33
|
strategy:
|
20
34
|
fail-fast: false
|
21
35
|
matrix:
|
22
36
|
ruby:
|
23
37
|
- 3.2
|
24
38
|
env:
|
39
|
+
- AR_VERSION: '7.1'
|
40
|
+
RUBYOPT: --enable-frozen-string-literal
|
25
41
|
- AR_VERSION: '7.0'
|
26
42
|
RUBYOPT: --enable-frozen-string-literal
|
27
43
|
- AR_VERSION: 6.1
|
28
44
|
RUBYOPT: --enable-frozen-string-literal
|
29
45
|
include:
|
46
|
+
- ruby: 3.1
|
47
|
+
env:
|
48
|
+
AR_VERSION: '7.1'
|
30
49
|
- ruby: 3.1
|
31
50
|
env:
|
32
51
|
AR_VERSION: '7.0'
|
@@ -39,6 +58,9 @@ jobs:
|
|
39
58
|
- ruby: '3.0'
|
40
59
|
env:
|
41
60
|
AR_VERSION: 6.1
|
61
|
+
- ruby: jruby-9.4.5.0
|
62
|
+
env:
|
63
|
+
AR_VERSION: '7.0'
|
42
64
|
- ruby: 2.7
|
43
65
|
env:
|
44
66
|
AR_VERSION: '7.0'
|
@@ -48,6 +70,9 @@ jobs:
|
|
48
70
|
- ruby: 2.7
|
49
71
|
env:
|
50
72
|
AR_VERSION: '6.0'
|
73
|
+
- ruby: jruby-9.3.10.0
|
74
|
+
env:
|
75
|
+
AR_VERSION: '6.1'
|
51
76
|
- ruby: 2.6
|
52
77
|
env:
|
53
78
|
AR_VERSION: 5.2
|
@@ -65,11 +90,12 @@ jobs:
|
|
65
90
|
AR_VERSION: ${{ matrix.env.AR_VERSION }}
|
66
91
|
DB_DATABASE: activerecord_import_test
|
67
92
|
steps:
|
68
|
-
- uses: actions/checkout@
|
93
|
+
- uses: actions/checkout@v4
|
69
94
|
- uses: ruby/setup-ruby@v1
|
70
95
|
with:
|
71
96
|
ruby-version: ${{ matrix.ruby }}
|
72
97
|
bundler-cache: true
|
98
|
+
rubygems: latest
|
73
99
|
- name: Set up databases
|
74
100
|
run: |
|
75
101
|
sudo /etc/init.d/mysql start
|
@@ -99,12 +125,15 @@ jobs:
|
|
99
125
|
run: |
|
100
126
|
bundle exec rake test:spatialite
|
101
127
|
bundle exec rake test:sqlite3
|
128
|
+
- name: Run trilogy tests
|
129
|
+
if: ${{ matrix.env.AR_VERSION >= '7.0' && matrix.ruby != 'jruby' }}
|
130
|
+
run: bundle exec rake test:trilogy
|
102
131
|
lint:
|
103
132
|
runs-on: ubuntu-latest
|
104
133
|
env:
|
105
134
|
AR_VERSION: '7.0'
|
106
135
|
steps:
|
107
|
-
- uses: actions/checkout@
|
136
|
+
- uses: actions/checkout@v4
|
108
137
|
- uses: ruby/setup-ruby@v1
|
109
138
|
with:
|
110
139
|
ruby-version: 2.7
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
## Changes in 1.6.0
|
2
|
+
|
3
|
+
### New Features
|
4
|
+
|
5
|
+
* Add trilogy adapter support. Thanks to @zmariscal via \##825.
|
6
|
+
|
7
|
+
### Fixes
|
8
|
+
|
9
|
+
* Use the locking_enabled? method provided by activerecord to decide whether the lock field should be updated. Thanks to @dombesz via \##822.
|
10
|
+
|
11
|
+
## Changes in 1.5.1
|
12
|
+
|
13
|
+
### Fixes
|
14
|
+
|
15
|
+
* Stop memoizing schema_columns_hash so dynamic schema changes are picked up. Thanks to @koshigoe via \##812.
|
16
|
+
|
1
17
|
## Changes in 1.5.0
|
2
18
|
|
3
19
|
### New Features
|
data/Dockerfile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# Use the official Ruby 3.2 image as a base image
|
2
|
+
ARG RUBY_VERSION=3.2
|
3
|
+
FROM ruby:${RUBY_VERSION}-bullseye
|
4
|
+
|
5
|
+
# Set the working directory
|
6
|
+
WORKDIR /usr/src/app
|
7
|
+
|
8
|
+
# Install system packages
|
9
|
+
RUN apt-get update -qq && \
|
10
|
+
apt-get install -y default-mysql-client postgresql postgresql-contrib vim && \
|
11
|
+
apt-get clean
|
12
|
+
|
13
|
+
# Set environment variables
|
14
|
+
ENV AR_VERSION=7.0
|
15
|
+
|
16
|
+
# Copy all files
|
17
|
+
COPY . .
|
18
|
+
|
19
|
+
# Move sample database.yml and install gems
|
20
|
+
RUN mv test/database.yml.sample test/database.yml && \
|
21
|
+
bundle install
|
22
|
+
|
23
|
+
CMD ["irb"]
|
data/Gemfile
CHANGED
@@ -26,18 +26,26 @@ platforms :ruby do
|
|
26
26
|
gem "sqlite3", "~> #{sqlite3_version}"
|
27
27
|
# seamless_database_pool requires Ruby ~> 2.0
|
28
28
|
gem "seamless_database_pool", "~> 1.0.20" if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.0.0')
|
29
|
+
gem "trilogy" if version >= 6.0
|
30
|
+
if version >= 6.0 && version <= 7.0
|
31
|
+
gem "activerecord-trilogy-adapter"
|
32
|
+
end
|
29
33
|
end
|
30
34
|
|
31
35
|
platforms :jruby do
|
32
36
|
gem "jdbc-mysql"
|
33
37
|
gem "jdbc-postgres"
|
34
|
-
gem "activerecord-jdbcsqlite3-adapter"
|
35
|
-
gem "activerecord-jdbcmysql-adapter"
|
36
|
-
gem "activerecord-jdbcpostgresql-adapter"
|
38
|
+
gem "activerecord-jdbcsqlite3-adapter"
|
39
|
+
gem "activerecord-jdbcmysql-adapter"
|
40
|
+
gem "activerecord-jdbcpostgresql-adapter"
|
37
41
|
end
|
38
42
|
|
39
43
|
# Support libs
|
40
|
-
|
44
|
+
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.0.0")
|
45
|
+
gem "factory_bot"
|
46
|
+
else
|
47
|
+
gem "factory_bot", "~> 5", "< 6.4.5"
|
48
|
+
end
|
41
49
|
gem "timecop"
|
42
50
|
gem "chronic"
|
43
51
|
gem "mocha", "~> 2.1.0"
|
data/README.markdown
CHANGED
@@ -364,6 +364,29 @@ book.reload.title # => "Book1" (stayed the same)
|
|
364
364
|
book.reload.author # => "Bob Barker" (changed)
|
365
365
|
```
|
366
366
|
|
367
|
+
PostgreSQL Using partial indexes
|
368
|
+
|
369
|
+
```ruby
|
370
|
+
book = Book.create! title: "Book1", author: "George Orwell", published_at: Time.now
|
371
|
+
book.author = "Bob Barker"
|
372
|
+
|
373
|
+
# in migration
|
374
|
+
execute <<-SQL
|
375
|
+
CREATE INDEX books_published_at_index ON books (published_at) WHERE published_at IS NOT NULL;
|
376
|
+
SQL
|
377
|
+
|
378
|
+
# PostgreSQL version
|
379
|
+
Book.import [book], on_duplicate_key_update: {
|
380
|
+
conflict_target: [:id],
|
381
|
+
index_predicate: "published_at IS NOT NULL",
|
382
|
+
columns: [:author]
|
383
|
+
}
|
384
|
+
|
385
|
+
book.reload.title # => "Book1" (stayed the same)
|
386
|
+
book.reload.author # => "Bob Barker" (changed)
|
387
|
+
book.reload.published_at # => 2017-10-09 (stayed the same)
|
388
|
+
```
|
389
|
+
|
367
390
|
PostgreSQL Using constraints
|
368
391
|
|
369
392
|
```ruby
|
@@ -626,6 +649,19 @@ AR_VERSION=7.0 bundle exec rake test:postgresql test:sqlite3 test:mysql2
|
|
626
649
|
|
627
650
|
Once you have pushed up your changes, you can find your CI results [here](https://github.com/zdennis/activerecord-import/actions).
|
628
651
|
|
652
|
+
#### Docker Setup
|
653
|
+
|
654
|
+
Before you begin, make sure you have [Docker](https://www.docker.com/products/docker-desktop/) and [Docker Compose](https://docs.docker.com/compose/) installed on your machine. If you don't, you can install both via Homebrew using the following command:
|
655
|
+
|
656
|
+
```bash
|
657
|
+
brew install docker && brew install docker-compose
|
658
|
+
```
|
659
|
+
##### Steps
|
660
|
+
|
661
|
+
1. In your terminal run `docker-compose up --build`
|
662
|
+
1. In another tab/window run `docker-compose exec app bash`
|
663
|
+
1. In that same terminal run the mysql2 test by running `bundle exec rake test:mysql2`
|
664
|
+
|
629
665
|
## Issue Triage [![Open Source Helpers](https://www.codetriage.com/zdennis/activerecord-import/badges/users.svg)](https://www.codetriage.com/zdennis/activerecord-import)
|
630
666
|
|
631
667
|
You can triage issues which may include reproducing bug reports or asking for vital information, such as version numbers or reproduction instructions. If you would like to start triaging issues, one easy way to get started is to [subscribe to activerecord-import on CodeTriage](https://www.codetriage.com/zdennis/activerecord-import).
|
data/Rakefile
CHANGED
data/docker-compose.yml
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
version: "3.5"
|
2
|
+
|
3
|
+
services:
|
4
|
+
mysql:
|
5
|
+
platform: linux/x86_64
|
6
|
+
image: mysql:5.7
|
7
|
+
volumes:
|
8
|
+
- mysql-data:/var/lib/mysql
|
9
|
+
ports:
|
10
|
+
- "3306:3306"
|
11
|
+
|
12
|
+
postgresql:
|
13
|
+
image: postgres:latest
|
14
|
+
volumes:
|
15
|
+
- postgresql-data:/var/lib/postgresql/data
|
16
|
+
ports:
|
17
|
+
- "5432:5432"
|
18
|
+
|
19
|
+
app:
|
20
|
+
build:
|
21
|
+
context: .
|
22
|
+
environment:
|
23
|
+
DB_HOST: mysql
|
24
|
+
AR_VERSION: 7.0
|
25
|
+
volumes:
|
26
|
+
- .:/usr/src/app
|
27
|
+
depends_on:
|
28
|
+
- mysql
|
29
|
+
- postgresql
|
30
|
+
command: tail -f /dev/null
|
31
|
+
|
32
|
+
volumes:
|
33
|
+
mysql-data:
|
34
|
+
postgresql-data:
|
@@ -557,7 +557,7 @@ class ActiveRecord::Base
|
|
557
557
|
options.merge!( args.pop ) if args.last.is_a? Hash
|
558
558
|
# making sure that current model's primary key is used
|
559
559
|
options[:primary_key] = primary_key
|
560
|
-
options[:locking_column] = locking_column if
|
560
|
+
options[:locking_column] = locking_column if locking_enabled?
|
561
561
|
|
562
562
|
is_validating = options[:validate_with_context].present? ? true : options[:validate]
|
563
563
|
validator = ActiveRecord::Import::Validator.new(self, options)
|
@@ -969,7 +969,7 @@ class ActiveRecord::Base
|
|
969
969
|
end
|
970
970
|
|
971
971
|
def schema_columns_hash
|
972
|
-
|
972
|
+
if respond_to?(:ignored_columns) && ignored_columns.any?
|
973
973
|
connection.schema_cache.columns_hash(table_name)
|
974
974
|
else
|
975
975
|
columns_hash
|
data/test/database.yml.sample
CHANGED
@@ -8,6 +8,7 @@ common: &common
|
|
8
8
|
mysql2: &mysql2
|
9
9
|
<<: *common
|
10
10
|
adapter: mysql2
|
11
|
+
host: mysql
|
11
12
|
|
12
13
|
mysql2spatial:
|
13
14
|
<<: *mysql2
|
@@ -19,6 +20,7 @@ postgresql: &postgresql
|
|
19
20
|
<<: *common
|
20
21
|
username: postgres
|
21
22
|
adapter: postgresql
|
23
|
+
host: postgresql
|
22
24
|
min_messages: warning
|
23
25
|
|
24
26
|
postresql_makara:
|
@@ -50,3 +52,8 @@ sqlite3: &sqlite3
|
|
50
52
|
|
51
53
|
spatialite:
|
52
54
|
<<: *sqlite3
|
55
|
+
|
56
|
+
trilogy:
|
57
|
+
<<: *common
|
58
|
+
adapter: trilogy
|
59
|
+
host: mysql
|
data/test/github/database.yml
CHANGED
data/test/models/book.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
class Book < ActiveRecord::Base
|
4
4
|
belongs_to :topic, inverse_of: :books
|
5
|
-
belongs_to :tag, foreign_key: [:tag_id, :parent_id]
|
5
|
+
belongs_to :tag, foreign_key: [:tag_id, :parent_id] unless ENV["SKIP_COMPOSITE_PK"]
|
6
6
|
|
7
7
|
has_many :chapters, inverse_of: :book
|
8
8
|
has_many :discounts, as: :discountable
|
data/test/models/customer.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class Customer < ActiveRecord::Base
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
unless ENV["SKIP_COMPOSITE_PK"]
|
5
|
+
has_many :orders,
|
6
|
+
inverse_of: :customer,
|
7
|
+
primary_key: %i(account_id id),
|
8
|
+
foreign_key: %i(account_id customer_id)
|
9
|
+
end
|
8
10
|
end
|
data/test/models/order.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class Order < ActiveRecord::Base
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
unless ENV["SKIP_COMPOSITE_PK"]
|
5
|
+
belongs_to :customer,
|
6
|
+
inverse_of: :orders,
|
7
|
+
primary_key: %i(account_id id),
|
8
|
+
foreign_key: %i(account_id customer_id)
|
9
|
+
end
|
8
10
|
end
|
data/test/models/tag_alias.rb
CHANGED
@@ -2,8 +2,10 @@
|
|
2
2
|
|
3
3
|
ActiveRecord::Schema.define do
|
4
4
|
create_table :schema_info, force: :cascade do |t|
|
5
|
-
t.integer :version
|
5
|
+
t.integer :version
|
6
6
|
end
|
7
|
+
add_index :schema_info, :version, unique: true
|
8
|
+
|
7
9
|
SchemaInfo.create version: SchemaInfo::VERSION
|
8
10
|
|
9
11
|
create_table :group, force: :cascade do |t|
|
@@ -8,10 +8,7 @@ ActiveRecord::Schema.define do
|
|
8
8
|
# create ENUM if it does not exist yet
|
9
9
|
begin
|
10
10
|
execute('CREATE TYPE vendor_type AS ENUM (\'wholesaler\', \'retailer\');')
|
11
|
-
rescue ActiveRecord::StatementInvalid
|
12
|
-
# since PostgreSQL does not support IF NOT EXISTS when creating a TYPE,
|
13
|
-
# rescue the error and check the error class
|
14
|
-
raise unless e.cause.is_a? PG::DuplicateObject
|
11
|
+
rescue ActiveRecord::StatementInvalid
|
15
12
|
execute('ALTER TYPE vendor_type ADD VALUE IF NOT EXISTS \'wholesaler\';')
|
16
13
|
execute('ALTER TYPE vendor_type ADD VALUE IF NOT EXISTS \'retailer\';')
|
17
14
|
end
|
@@ -223,6 +223,34 @@ def should_support_basic_on_duplicate_key_update
|
|
223
223
|
end
|
224
224
|
end
|
225
225
|
end
|
226
|
+
|
227
|
+
context 'with locking disabled' do
|
228
|
+
it 'does not update the lock_version' do
|
229
|
+
users = [
|
230
|
+
User.new(name: 'Salomon'),
|
231
|
+
User.new(name: 'Nathan')
|
232
|
+
]
|
233
|
+
User.import(users)
|
234
|
+
assert User.count == users.length
|
235
|
+
User.all.each do |user|
|
236
|
+
assert_equal 0, user.lock_version
|
237
|
+
end
|
238
|
+
updated_users = User.all.map do |user|
|
239
|
+
user.name += ' Rothschild'
|
240
|
+
user
|
241
|
+
end
|
242
|
+
|
243
|
+
ActiveRecord::Base.lock_optimistically = false # Disable locking
|
244
|
+
User.import(updated_users, on_duplicate_key_update: [:name])
|
245
|
+
ActiveRecord::Base.lock_optimistically = true # Enable locking
|
246
|
+
|
247
|
+
assert User.count == updated_users.length
|
248
|
+
User.all.each_with_index do |user, i|
|
249
|
+
assert_equal user.name, "#{users[i].name} Rothschild"
|
250
|
+
assert_equal 0, user.lock_version
|
251
|
+
end
|
252
|
+
end
|
253
|
+
end
|
226
254
|
end
|
227
255
|
|
228
256
|
context "with :on_duplicate_key_update" do
|
@@ -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.
|
4
|
+
version: 1.6.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-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -51,6 +51,7 @@ files:
|
|
51
51
|
- ".rubocop_todo.yml"
|
52
52
|
- Brewfile
|
53
53
|
- CHANGELOG.md
|
54
|
+
- Dockerfile
|
54
55
|
- Gemfile
|
55
56
|
- LICENSE
|
56
57
|
- README.markdown
|
@@ -68,6 +69,7 @@ files:
|
|
68
69
|
- benchmarks/models/test_memory.rb
|
69
70
|
- benchmarks/models/test_myisam.rb
|
70
71
|
- benchmarks/schema/mysql2_schema.rb
|
72
|
+
- docker-compose.yml
|
71
73
|
- gemfiles/4.2.gemfile
|
72
74
|
- gemfiles/5.0.gemfile
|
73
75
|
- gemfiles/5.1.gemfile
|
@@ -75,6 +77,7 @@ files:
|
|
75
77
|
- gemfiles/6.0.gemfile
|
76
78
|
- gemfiles/6.1.gemfile
|
77
79
|
- gemfiles/7.0.gemfile
|
80
|
+
- gemfiles/7.1.gemfile
|
78
81
|
- lib/activerecord-import.rb
|
79
82
|
- lib/activerecord-import/active_record/adapters/abstract_adapter.rb
|
80
83
|
- lib/activerecord-import/active_record/adapters/jdbcmysql_adapter.rb
|
@@ -84,12 +87,14 @@ files:
|
|
84
87
|
- lib/activerecord-import/active_record/adapters/postgresql_adapter.rb
|
85
88
|
- lib/activerecord-import/active_record/adapters/seamless_database_pool_adapter.rb
|
86
89
|
- lib/activerecord-import/active_record/adapters/sqlite3_adapter.rb
|
90
|
+
- lib/activerecord-import/active_record/adapters/trilogy_adapter.rb
|
87
91
|
- lib/activerecord-import/adapters/abstract_adapter.rb
|
88
92
|
- lib/activerecord-import/adapters/em_mysql2_adapter.rb
|
89
93
|
- lib/activerecord-import/adapters/mysql2_adapter.rb
|
90
94
|
- lib/activerecord-import/adapters/mysql_adapter.rb
|
91
95
|
- lib/activerecord-import/adapters/postgresql_adapter.rb
|
92
96
|
- lib/activerecord-import/adapters/sqlite3_adapter.rb
|
97
|
+
- lib/activerecord-import/adapters/trilogy_adapter.rb
|
93
98
|
- lib/activerecord-import/base.rb
|
94
99
|
- lib/activerecord-import/import.rb
|
95
100
|
- lib/activerecord-import/mysql2.rb
|
@@ -111,6 +116,7 @@ files:
|
|
111
116
|
- test/adapters/seamless_database_pool.rb
|
112
117
|
- test/adapters/spatialite.rb
|
113
118
|
- test/adapters/sqlite3.rb
|
119
|
+
- test/adapters/trilogy.rb
|
114
120
|
- test/database.yml.sample
|
115
121
|
- test/github/database.yml
|
116
122
|
- test/import_test.rb
|
@@ -169,6 +175,7 @@ files:
|
|
169
175
|
- test/support/sqlite3/import_examples.rb
|
170
176
|
- test/synchronize_test.rb
|
171
177
|
- test/test_helper.rb
|
178
|
+
- test/trilogy/import_test.rb
|
172
179
|
- test/value_sets_bytes_parser_test.rb
|
173
180
|
- test/value_sets_records_parser_test.rb
|
174
181
|
homepage: https://github.com/zdennis/activerecord-import
|
@@ -208,6 +215,7 @@ test_files:
|
|
208
215
|
- test/adapters/seamless_database_pool.rb
|
209
216
|
- test/adapters/spatialite.rb
|
210
217
|
- test/adapters/sqlite3.rb
|
218
|
+
- test/adapters/trilogy.rb
|
211
219
|
- test/database.yml.sample
|
212
220
|
- test/github/database.yml
|
213
221
|
- test/import_test.rb
|
@@ -266,5 +274,6 @@ test_files:
|
|
266
274
|
- test/support/sqlite3/import_examples.rb
|
267
275
|
- test/synchronize_test.rb
|
268
276
|
- test/test_helper.rb
|
277
|
+
- test/trilogy/import_test.rb
|
269
278
|
- test/value_sets_bytes_parser_test.rb
|
270
279
|
- test/value_sets_records_parser_test.rb
|