activerecord-import 1.1.0 → 1.2.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 +73 -0
- data/CHANGELOG.md +13 -3
- data/Gemfile +1 -1
- data/README.markdown +4 -4
- data/lib/activerecord-import/active_record/adapters/jdbcmysql_adapter.rb +4 -4
- data/lib/activerecord-import/import.rb +16 -10
- data/lib/activerecord-import/version.rb +1 -1
- data/test/{travis → github}/database.yml +3 -1
- data/test/import_test.rb +19 -1
- data/test/models/card.rb +3 -0
- data/test/models/deck.rb +6 -0
- data/test/models/playing_card.rb +2 -0
- data/test/schema/generic_schema.rb +14 -0
- data/test/test_helper.rb +1 -0
- metadata +12 -6
- data/.travis.yml +0 -76
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3360334cbd71089351c8211214bb4aedf0bd3e65305513b17c9fb09e3f1cf19
|
4
|
+
data.tar.gz: 2b97e3a1c6c2b39970dd3bb2a00a608d6e105cddac19d3f9ebaf28f8f30ece69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4585ba6ff2300d94fbd646d5f5a07cc254311cb9a47eacc7b1266eab8df5d9a53ca3018232e6c2517f05e1aef0dafaff20942bd1150ef518d688940f795bf2a9
|
7
|
+
data.tar.gz: 532506d134f067323d0490a913739089e55bf17893f602c752e5e963af2d7d799f5200a72cc48e7c780992e9f82c68273dc7af308034664ba898ed5292e199c4
|
@@ -0,0 +1,73 @@
|
|
1
|
+
name: Test
|
2
|
+
on: [push, pull_request]
|
3
|
+
jobs:
|
4
|
+
test:
|
5
|
+
services:
|
6
|
+
postgres:
|
7
|
+
image: postgis/postgis:10-2.5
|
8
|
+
env:
|
9
|
+
POSTGRES_USER: postgres
|
10
|
+
POSTGRES_PASSWORD: postgres
|
11
|
+
ports:
|
12
|
+
- 5432:5432
|
13
|
+
# Set health checks to wait until postgres has started
|
14
|
+
options: >-
|
15
|
+
--health-cmd pg_isready
|
16
|
+
--health-interval 10s
|
17
|
+
--health-timeout 5s
|
18
|
+
--health-retries 5
|
19
|
+
strategy:
|
20
|
+
fail-fast: false
|
21
|
+
matrix:
|
22
|
+
ruby:
|
23
|
+
- 2.6
|
24
|
+
env:
|
25
|
+
- AR_VERSION: 6.1
|
26
|
+
- AR_VERSION: 6.0
|
27
|
+
- AR_VERSION: 5.2
|
28
|
+
- AR_VERSION: 5.1
|
29
|
+
include:
|
30
|
+
- ruby: 2.4
|
31
|
+
env:
|
32
|
+
AR_VERSION: 5.0
|
33
|
+
- ruby: 2.4
|
34
|
+
env:
|
35
|
+
AR_VERSION: 4.2
|
36
|
+
runs-on: ubuntu-latest
|
37
|
+
env:
|
38
|
+
AR_VERSION: ${{ matrix.env.AR_VERSION }}
|
39
|
+
DB_DATABASE: activerecord_import_test
|
40
|
+
steps:
|
41
|
+
- uses: actions/checkout@v2
|
42
|
+
- uses: ruby/setup-ruby@v1
|
43
|
+
with:
|
44
|
+
ruby-version: ${{ matrix.ruby }}
|
45
|
+
- name: Setup Bundler 1.x for Ruby 2.3
|
46
|
+
if: ${{ matrix.ruby == '2.3' }}
|
47
|
+
run: echo "BUNDLER_VERSION=1.17.3" >> $GITHUB_ENV
|
48
|
+
- name: Set up databases
|
49
|
+
run: |
|
50
|
+
sudo /etc/init.d/mysql start
|
51
|
+
mysql -e 'CREATE DATABASE ${{ env.DB_DATABASE }} CHARACTER SET utf8 COLLATE utf8_general_ci;' -u root -proot
|
52
|
+
psql -h localhost -U postgres -c 'create database ${{ env.DB_DATABASE }};'
|
53
|
+
psql -h localhost -U postgres -d ${{ env.DB_DATABASE }} -c 'create extension if not exists hstore;'
|
54
|
+
psql -h localhost -U postgres -c 'create extension if not exists postgis;'
|
55
|
+
psql -h localhost -U postgres -c 'create extension if not exists "uuid-ossp";'
|
56
|
+
cp test/github/database.yml test/database.yml
|
57
|
+
env:
|
58
|
+
PGPASSWORD: postgres
|
59
|
+
- name: Install dependencies
|
60
|
+
run : AR_VERSION=${{ env.AR_VERSION }} bundle install
|
61
|
+
- name: Run tests
|
62
|
+
run: |
|
63
|
+
bundle exec rake test:mysql2
|
64
|
+
bundle exec rake test:mysql2_makara
|
65
|
+
bundle exec rake test:mysql2spatial
|
66
|
+
bundle exec rake test:postgis
|
67
|
+
bundle exec rake test:postgresql
|
68
|
+
bundle exec rake test:postgresql_makara
|
69
|
+
bundle exec rake test:seamless_database_pool
|
70
|
+
bundle exec rake test:spatialite
|
71
|
+
bundle exec rake test:sqlite3
|
72
|
+
- name: Run Rubocop
|
73
|
+
run: bundle exec rubocop
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## Changes in 1.2.0
|
2
|
+
|
3
|
+
### Fixes
|
4
|
+
|
5
|
+
* Update JDBC MySQL adapter to use mysql2 connection adapter. Thanks to @terencechow via \##744.
|
6
|
+
* Fix importing STI models with ActiveRecord 6. Thanks to @clemens1483 via \##743.
|
7
|
+
* Use polymorphic_name instead of base_class.name for imports. Thanks to @kmhajjar via \##741.
|
8
|
+
* Fix compatibility issue with composite primary keys. Thanks to @dlanileonardo via \##737.
|
9
|
+
* Prevent double validation of associations on recursive import.
|
10
|
+
|
1
11
|
## Changes in 1.1.0
|
2
12
|
|
3
13
|
### New Features
|
@@ -27,7 +37,7 @@
|
|
27
37
|
|
28
38
|
* Handle after_initialize callbacks. Thanks to @AhMohsen46 via \#691 and
|
29
39
|
\#692.
|
30
|
-
* Fix regression introduced in 1.0.4.
|
40
|
+
* Fix regression introduced in 1.0.4. Explicitly allow adapters to
|
31
41
|
support on duplicate key update. Thanks to @dsobiera, @jkowens via \#696.
|
32
42
|
|
33
43
|
## Changes in 1.0.5
|
@@ -36,7 +46,7 @@
|
|
36
46
|
|
37
47
|
* Allow serialized attributes to be returned from import. Thanks to @timanovsky, @jkowens via \#660.
|
38
48
|
* Return ActiveRecord::Connection from
|
39
|
-
|
49
|
+
ActiveRecord::Base#establish_connection. Thanks to @reverentF via
|
40
50
|
\#663.
|
41
51
|
* Support PostgreSQL array. Thanks to @ujihisa via \#669.
|
42
52
|
* Skip loading association ids when column changed. Thanks to @Aristat
|
@@ -91,7 +101,7 @@
|
|
91
101
|
* Fix import issue for models with Postgresql json/jsonb fields. Thanks
|
92
102
|
to @stokarenko via \#594.
|
93
103
|
* Fix issue importing models with timestamps that contain timezone
|
94
|
-
information.
|
104
|
+
information. Thanks to @dekaikiwi, @jkowens via \#598.
|
95
105
|
* Ignore :no_returning when using :recursive option. Thanks to @dgollahon, @jkowens
|
96
106
|
via \#599.
|
97
107
|
|
data/Gemfile
CHANGED
data/README.markdown
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Activerecord-Import
|
1
|
+
# Activerecord-Import 
|
2
2
|
|
3
3
|
Activerecord-Import is a library for bulk inserting data using ActiveRecord.
|
4
4
|
|
@@ -266,8 +266,8 @@ Key | Options | Default | Descrip
|
|
266
266
|
------------------------- | --------------------- | ------------------ | -----------
|
267
267
|
:validate | `true`/`false` | `true` | Whether or not to run `ActiveRecord` validations (uniqueness skipped). This option will always be true when using `import!`.
|
268
268
|
:validate_uniqueness | `true`/`false` | `false` | Whether or not to run uniqueness validations, has potential pitfalls, use with caution (requires `>= v0.27.0`).
|
269
|
-
:validate_with_context | `Symbol` |`:create`/`:update` | Allows passing an ActiveModel validation context for each model. Default is `:create` for new records and `:update` for existing ones.
|
270
|
-
:track_validation_failures| `true`/`false` | `false` | When this is set to true, `failed_instances` will be an array of arrays, with each inner array having the form `[:index_in_dataset, :object_with_errors]`
|
269
|
+
:validate_with_context | `Symbol` |`:create`/`:update` | Allows passing an ActiveModel validation context for each model. Default is `:create` for new records and `:update` for existing ones.
|
270
|
+
:track_validation_failures| `true`/`false` | `false` | When this is set to true, `failed_instances` will be an array of arrays, with each inner array having the form `[:index_in_dataset, :object_with_errors]`
|
271
271
|
:on_duplicate_key_ignore | `true`/`false` | `false` | Allows skipping records with duplicate keys. See [here](https://github.com/zdennis/activerecord-import/#duplicate-key-ignore) for more details.
|
272
272
|
:ignore | `true`/`false` | `false` | Alias for :on_duplicate_key_ignore.
|
273
273
|
:on_duplicate_key_update | :all, `Array`, `Hash` | N/A | Allows upsert logic to be used. See [here](https://github.com/zdennis/activerecord-import/#duplicate-key-update) for more details.
|
@@ -392,7 +392,7 @@ Book.import books, validate_uniqueness: true
|
|
392
392
|
|
393
393
|
### Return Info
|
394
394
|
|
395
|
-
The `import` method returns a `Result` object that responds to `failed_instances` and `num_inserts`. Additionally, for users of Postgres, there will be two arrays `ids` and `results` that can be accessed
|
395
|
+
The `import` method returns a `Result` object that responds to `failed_instances` and `num_inserts`. Additionally, for users of Postgres, there will be two arrays `ids` and `results` that can be accessed.
|
396
396
|
|
397
397
|
```ruby
|
398
398
|
articles = [
|
@@ -1,6 +1,6 @@
|
|
1
|
-
require "active_record/connection_adapters/
|
2
|
-
require "activerecord-import/adapters/
|
1
|
+
require "active_record/connection_adapters/mysql2_adapter"
|
2
|
+
require "activerecord-import/adapters/mysql2_adapter"
|
3
3
|
|
4
|
-
class ActiveRecord::ConnectionAdapters::
|
5
|
-
include ActiveRecord::Import::
|
4
|
+
class ActiveRecord::ConnectionAdapters::Mysql2Adapter
|
5
|
+
include ActiveRecord::Import::Mysql2Adapter
|
6
6
|
end
|
@@ -49,7 +49,7 @@ module ActiveRecord::Import #:nodoc:
|
|
49
49
|
associations = klass.reflect_on_all_associations(:belongs_to)
|
50
50
|
associations.each do |assoc|
|
51
51
|
if (index = attrs.index(assoc.name))
|
52
|
-
key = assoc.foreign_key.to_sym
|
52
|
+
key = assoc.foreign_key.is_a?(Array) ? assoc.foreign_key.map(&:to_sym) : assoc.foreign_key.to_sym
|
53
53
|
attrs[index] = key unless attrs.include?(key)
|
54
54
|
end
|
55
55
|
end
|
@@ -734,7 +734,7 @@ class ActiveRecord::Base
|
|
734
734
|
set_attributes_and_mark_clean(models, return_obj, timestamps, options)
|
735
735
|
|
736
736
|
# if there are auto-save associations on the models we imported that are new, import them as well
|
737
|
-
import_associations(models, options.dup) if options[:recursive]
|
737
|
+
import_associations(models, options.dup.merge(validate: false)) if options[:recursive]
|
738
738
|
end
|
739
739
|
|
740
740
|
return_obj
|
@@ -775,21 +775,22 @@ class ActiveRecord::Base
|
|
775
775
|
unless scope_columns.blank?
|
776
776
|
scope_columns.zip(scope_values).each do |name, value|
|
777
777
|
name_as_sym = name.to_sym
|
778
|
-
next if column_names.include?(name_as_sym)
|
779
|
-
|
780
|
-
is_sti = (name_as_sym == inheritance_column.to_sym && self < base_class)
|
781
|
-
value = Array(value).first if is_sti
|
782
|
-
|
778
|
+
next if column_names.include?(name_as_sym) || name_as_sym == inheritance_column.to_sym
|
783
779
|
column_names << name_as_sym
|
784
780
|
array_of_attributes.each { |attrs| attrs << value }
|
785
781
|
end
|
786
782
|
end
|
787
783
|
|
784
|
+
if finder_needs_type_condition?
|
785
|
+
unless column_names.include?(inheritance_column.to_sym)
|
786
|
+
column_names << inheritance_column.to_sym
|
787
|
+
array_of_attributes.each { |attrs| attrs << sti_name }
|
788
|
+
end
|
789
|
+
end
|
790
|
+
|
788
791
|
columns = column_names.each_with_index.map do |name, i|
|
789
792
|
column = columns_hash[name.to_s]
|
790
|
-
|
791
793
|
raise ActiveRecord::Import::MissingColumnError.new(name.to_s, i) if column.nil?
|
792
|
-
|
793
794
|
column
|
794
795
|
end
|
795
796
|
|
@@ -961,8 +962,13 @@ class ActiveRecord::Base
|
|
961
962
|
changed_objects.each do |child|
|
962
963
|
child.public_send("#{association_reflection.foreign_key}=", model.id)
|
963
964
|
# For polymorphic associations
|
965
|
+
association_name = if model.class.respond_to?(:polymorphic_name)
|
966
|
+
model.class.polymorphic_name
|
967
|
+
else
|
968
|
+
model.class.base_class
|
969
|
+
end
|
964
970
|
association_reflection.type.try do |type|
|
965
|
-
child.public_send("#{type}=",
|
971
|
+
child.public_send("#{type}=", association_name)
|
966
972
|
end
|
967
973
|
end
|
968
974
|
associated_objects_by_class[model.class.name][association_reflection.name].concat changed_objects
|
@@ -1,7 +1,8 @@
|
|
1
1
|
common: &common
|
2
2
|
username: root
|
3
|
-
password:
|
3
|
+
password: root
|
4
4
|
encoding: utf8
|
5
|
+
collation: utf8_general_ci
|
5
6
|
host: localhost
|
6
7
|
database: activerecord_import_test
|
7
8
|
|
@@ -37,6 +38,7 @@ oracle:
|
|
37
38
|
postgresql: &postgresql
|
38
39
|
<<: *common
|
39
40
|
username: postgres
|
41
|
+
password: postgres
|
40
42
|
adapter: postgresql
|
41
43
|
min_messages: warning
|
42
44
|
|
data/test/import_test.rb
CHANGED
@@ -169,7 +169,17 @@ describe "#import" do
|
|
169
169
|
assert_difference "Dictionary.count", +1 do
|
170
170
|
Dictionary.import dictionaries
|
171
171
|
end
|
172
|
-
assert_equal "Dictionary", Dictionary.
|
172
|
+
assert_equal "Dictionary", Dictionary.last.type
|
173
|
+
end
|
174
|
+
|
175
|
+
it "should import arrays successfully" do
|
176
|
+
columns = [:author_name, :title]
|
177
|
+
values = [["Noah Webster", "Webster's Dictionary"]]
|
178
|
+
|
179
|
+
assert_difference "Dictionary.count", +1 do
|
180
|
+
Dictionary.import columns, values
|
181
|
+
end
|
182
|
+
assert_equal "Dictionary", Dictionary.last.type
|
173
183
|
end
|
174
184
|
end
|
175
185
|
|
@@ -661,6 +671,14 @@ describe "#import" do
|
|
661
671
|
assert_equal [val1, val2], scope.map(&column).sort
|
662
672
|
end
|
663
673
|
|
674
|
+
context "for cards and decks" do
|
675
|
+
it "works when the polymorphic name is different than base class name" do
|
676
|
+
deck = Deck.create(id: 1, name: 'test')
|
677
|
+
deck.cards.import [:id, :deck_type], [[1, 'PlayingCard']]
|
678
|
+
assert_equal deck.cards.first.deck_type, "PlayingCard"
|
679
|
+
end
|
680
|
+
end
|
681
|
+
|
664
682
|
it "works importing array of hashes" do
|
665
683
|
scope.import [{ column => val1 }, { column => val2 }]
|
666
684
|
|
data/test/models/card.rb
ADDED
data/test/models/deck.rb
ADDED
@@ -52,6 +52,20 @@ ActiveRecord::Schema.define do
|
|
52
52
|
t.string :name
|
53
53
|
end
|
54
54
|
|
55
|
+
create_table :cards, force: :cascade do |t|
|
56
|
+
t.string :name
|
57
|
+
t.string :deck_type
|
58
|
+
t.integer :deck_id
|
59
|
+
end
|
60
|
+
|
61
|
+
create_table :decks, force: :cascade do |t|
|
62
|
+
t.string :name
|
63
|
+
end
|
64
|
+
|
65
|
+
create_table :playing_cards, force: :cascade do |t|
|
66
|
+
t.string :name
|
67
|
+
end
|
68
|
+
|
55
69
|
create_table :books, force: :cascade do |t|
|
56
70
|
t.string :title, null: false
|
57
71
|
t.string :publisher, null: false, default: 'Default Publisher'
|
data/test/test_helper.rb
CHANGED
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.2.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: 2021-
|
11
|
+
date: 2021-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -45,10 +45,10 @@ 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
54
|
- Gemfile
|
@@ -114,6 +114,7 @@ files:
|
|
114
114
|
- test/adapters/spatialite.rb
|
115
115
|
- test/adapters/sqlite3.rb
|
116
116
|
- test/database.yml.sample
|
117
|
+
- test/github/database.yml
|
117
118
|
- test/import_test.rb
|
118
119
|
- test/jdbcmysql/import_test.rb
|
119
120
|
- test/jdbcpostgresql/import_test.rb
|
@@ -125,11 +126,14 @@ files:
|
|
125
126
|
- test/models/bike_maker.rb
|
126
127
|
- test/models/book.rb
|
127
128
|
- test/models/car.rb
|
129
|
+
- test/models/card.rb
|
128
130
|
- test/models/chapter.rb
|
131
|
+
- test/models/deck.rb
|
129
132
|
- test/models/dictionary.rb
|
130
133
|
- test/models/discount.rb
|
131
134
|
- test/models/end_note.rb
|
132
135
|
- test/models/group.rb
|
136
|
+
- test/models/playing_card.rb
|
133
137
|
- test/models/promotion.rb
|
134
138
|
- test/models/question.rb
|
135
139
|
- test/models/rule.rb
|
@@ -164,7 +168,6 @@ files:
|
|
164
168
|
- test/support/sqlite3/import_examples.rb
|
165
169
|
- test/synchronize_test.rb
|
166
170
|
- test/test_helper.rb
|
167
|
-
- test/travis/database.yml
|
168
171
|
- test/value_sets_bytes_parser_test.rb
|
169
172
|
- test/value_sets_records_parser_test.rb
|
170
173
|
homepage: https://github.com/zdennis/activerecord-import
|
@@ -186,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
189
|
- !ruby/object:Gem::Version
|
187
190
|
version: '0'
|
188
191
|
requirements: []
|
189
|
-
rubygems_version: 3.0.
|
192
|
+
rubygems_version: 3.0.9
|
190
193
|
signing_key:
|
191
194
|
specification_version: 4
|
192
195
|
summary: Bulk insert extension for ActiveRecord
|
@@ -205,6 +208,7 @@ test_files:
|
|
205
208
|
- test/adapters/spatialite.rb
|
206
209
|
- test/adapters/sqlite3.rb
|
207
210
|
- test/database.yml.sample
|
211
|
+
- test/github/database.yml
|
208
212
|
- test/import_test.rb
|
209
213
|
- test/jdbcmysql/import_test.rb
|
210
214
|
- test/jdbcpostgresql/import_test.rb
|
@@ -216,11 +220,14 @@ test_files:
|
|
216
220
|
- test/models/bike_maker.rb
|
217
221
|
- test/models/book.rb
|
218
222
|
- test/models/car.rb
|
223
|
+
- test/models/card.rb
|
219
224
|
- test/models/chapter.rb
|
225
|
+
- test/models/deck.rb
|
220
226
|
- test/models/dictionary.rb
|
221
227
|
- test/models/discount.rb
|
222
228
|
- test/models/end_note.rb
|
223
229
|
- test/models/group.rb
|
230
|
+
- test/models/playing_card.rb
|
224
231
|
- test/models/promotion.rb
|
225
232
|
- test/models/question.rb
|
226
233
|
- test/models/rule.rb
|
@@ -255,6 +262,5 @@ test_files:
|
|
255
262
|
- test/support/sqlite3/import_examples.rb
|
256
263
|
- test/synchronize_test.rb
|
257
264
|
- test/test_helper.rb
|
258
|
-
- test/travis/database.yml
|
259
265
|
- test/value_sets_bytes_parser_test.rb
|
260
266
|
- test/value_sets_records_parser_test.rb
|
data/.travis.yml
DELETED
@@ -1,76 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache: bundler
|
3
|
-
rvm:
|
4
|
-
- 2.5.8
|
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
|
-
- AR_VERSION=6.1
|
15
|
-
|
16
|
-
matrix:
|
17
|
-
include:
|
18
|
-
- rvm: 2.3.8
|
19
|
-
env: AR_VERSION=3.2
|
20
|
-
- rvm: 2.3.8
|
21
|
-
env: AR_VERSION=4.0
|
22
|
-
- rvm: 2.3.8
|
23
|
-
env: AR_VERSION=4.1
|
24
|
-
- rvm: 2.3.8
|
25
|
-
env: AR_VERSION=4.2
|
26
|
-
- rvm: 2.3.8
|
27
|
-
env: AR_VERSION=5.0
|
28
|
-
|
29
|
-
fast_finish: true
|
30
|
-
|
31
|
-
addons:
|
32
|
-
postgresql: "10"
|
33
|
-
apt:
|
34
|
-
sources:
|
35
|
-
- travis-ci/sqlite3
|
36
|
-
- mysql-5.7-trusty
|
37
|
-
packages:
|
38
|
-
- sqlite3
|
39
|
-
- mysql-server
|
40
|
-
- mysql-client
|
41
|
-
- postgresql-10-postgis-2.4
|
42
|
-
|
43
|
-
before_install:
|
44
|
-
- sudo apt-get update
|
45
|
-
- gem update --system
|
46
|
-
- sudo mysql -e "use mysql; update user set authentication_string=PASSWORD('') where User='root'; update user set plugin='mysql_native_password';FLUSH PRIVILEGES;"
|
47
|
-
- sudo mysql_upgrade
|
48
|
-
- sudo service mysql restart
|
49
|
-
|
50
|
-
before_script:
|
51
|
-
- mysql -e 'create database activerecord_import_test;'
|
52
|
-
- psql -c 'create database activerecord_import_test;' -U postgres
|
53
|
-
- psql activerecord_import_test -c 'create extension if not exists hstore;' -U postgres
|
54
|
-
- psql -c 'create extension if not exists postgis;' -U postgres
|
55
|
-
- psql -c 'create extension if not exists "uuid-ossp";' -U postgres
|
56
|
-
- cp test/travis/database.yml test/database.yml
|
57
|
-
|
58
|
-
script:
|
59
|
-
- bundle exec rake test:mysql2
|
60
|
-
- bundle exec rake test:mysql2_makara
|
61
|
-
- bundle exec rake test:mysql2spatial
|
62
|
-
- bundle exec rake test:postgis
|
63
|
-
- bundle exec rake test:postgresql
|
64
|
-
- bundle exec rake test:postgresql_makara
|
65
|
-
- bundle exec rake test:seamless_database_pool
|
66
|
-
- bundle exec rake test:spatialite
|
67
|
-
- bundle exec rake test:sqlite3
|
68
|
-
- bundle exec rubocop
|
69
|
-
|
70
|
-
dist: xenial
|
71
|
-
|
72
|
-
services:
|
73
|
-
- mysql
|
74
|
-
- postgresql
|
75
|
-
|
76
|
-
sudo: required
|