Skip to content

Commit a9f6efd

Browse files
authored
Merge pull request #79 from jamis/postgresql-ci
Enable postgresql ci tests
2 parents 4a69aff + bf7dbb9 commit a9f6efd

File tree

12 files changed

+111
-106
lines changed

12 files changed

+111
-106
lines changed

.travis.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ branch:
66
# https://docs.travis-ci.com/user/database-setup/#mysql
77
services:
88
- mysql
9+
- postgresql
10+
911
rvm:
1012
- 2.3
1113
- 2.4
@@ -19,6 +21,7 @@ gemfile:
1921
env:
2022
- DB_ADAPTER=sqlite
2123
- DB_ADAPTER=mysql
24+
- DB_ADAPTER=postgresql
2225
matrix:
2326
allow_failures:
2427
- rvm: ruby-head
@@ -29,30 +32,45 @@ matrix:
2932
- rvm: 2.2
3033
gemfile: gemfiles/rails_3.gemfile
3134
env: DB_ADAPTER=mysql
35+
- rvm: 2.2
36+
gemfile: gemfiles/rails_3.gemfile
37+
env: DB_ADAPTER=postgresql
3238
- rvm: 2.2
3339
gemfile: gemfiles/rails_4.gemfile
3440
env: DB_ADAPTER=sqlite
3541
- rvm: 2.2
3642
gemfile: gemfiles/rails_4.gemfile
3743
env: DB_ADAPTER=mysql
44+
- rvm: 2.2
45+
gemfile: gemfiles/rails_4.gemfile
46+
env: DB_ADAPTER=postgresql
3847
- rvm: 2.3
3948
gemfile: gemfiles/rails_3.gemfile
4049
env: DB_ADAPTER=sqlite
4150
- rvm: 2.3
4251
gemfile: gemfiles/rails_3.gemfile
4352
env: DB_ADAPTER=mysql
53+
- rvm: 2.3
54+
gemfile: gemfiles/rails_3.gemfile
55+
env: DB_ADAPTER=postgresql
4456
- rvm: 2.3
4557
gemfile: gemfiles/rails_4.gemfile
4658
env: DB_ADAPTER=sqlite
4759
- rvm: 2.3
4860
gemfile: gemfiles/rails_4.gemfile
4961
env: DB_ADAPTER=mysql
62+
- rvm: 2.3
63+
gemfile: gemfiles/rails_4.gemfile
64+
env: DB_ADAPTER=postgresql
5065
- rvm: 2.4
5166
gemfile: gemfiles/rails_4.gemfile
5267
env: DB_ADAPTER=sqlite
5368
- rvm: 2.4
5469
gemfile: gemfiles/rails_4.gemfile
5570
env: DB_ADAPTER=mysql
71+
- rvm: 2.4
72+
gemfile: gemfiles/rails_4.gemfile
73+
env: DB_ADAPTER=postgresql
5674
exclude:
5775
- rvm: 2.3
5876
gemfile: gemfiles/rails_6.gemfile

Appraisals

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,28 @@
11
appraise "rails-3" do
22
gem "mysql2", "~> 0.3.10"
3+
gem "pg", "~> 0.11"
34
gem "rails", "~> 3"
45
gem "sqlite3", "~> 1.3.6"
56
gem "test-unit", "~> 3.0"
67
end
78

89
appraise "rails-4" do
910
gem "mysql2"
11+
gem "pg", "~> 0.15"
1012
gem "rails", "~> 4"
1113
gem "sqlite3", "~> 1.3.6"
1214
end
1315

1416
appraise "rails-5" do
1517
gem "mysql2"
18+
gem "pg"
1619
gem "rails", "~> 5"
1720
gem "sqlite3"
1821
end
1922

2023
appraise "rails-6" do
2124
gem "mysql2"
25+
gem "pg"
2226
gem "rails", "~> 6"
2327
gem "sqlite3"
2428
end

FIXME.md

Lines changed: 0 additions & 92 deletions
This file was deleted.

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,11 @@ ruby / rails | `~>3` | `~>4` | `~>5` | `~>6`
209209
2.6 | no | no | yes | yes
210210
2.7 | no | no | yes | yes
211211

212-
> Any extension to the test suite to validate other db adapter than sqlite is welcome.
212+
The adapters covered in the CI are:
213+
* sqlite
214+
* mysql
215+
* postgresql
216+
213217

214218
## License
215219

ci/000-prepare-database

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@
22
set -euo pipefail
33

44
export DB_ADAPTER=${DB_ADAPTER:-mysql}
5-
if [[ "${DB_ADAPTER}" == "mysql" ]]; then
6-
mysql -e 'CREATE DATABASE bulk_insert_test;'
7-
fi
5+
6+
case $DB_ADAPTER in
7+
mysql)
8+
mysql -e 'CREATE DATABASE bulk_insert_test;'
9+
;;
10+
postgresql)
11+
psql -c 'create database bulk_insert_test;' -U postgres
12+
;;
13+
esac
814

915
cd test/dummy
1016
bundle exec rake db:test:load

gemfiles/rails_3.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ gem "minitest"
66
gem "rails", "~> 3"
77
gem "sqlite3", "~> 1.3.6"
88
gem "mysql2", "~> 0.3.10"
9+
gem "pg", "~> 0.11"
910
gem "test-unit", "~> 3.0"
1011

1112
gemspec path: "../"

gemfiles/rails_4.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ gem "minitest"
66
gem "rails", "~> 4"
77
gem "sqlite3", "~> 1.3.6"
88
gem "mysql2"
9+
gem "pg", "~> 0.15"
910

1011
gemspec path: "../"

gemfiles/rails_5.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ gem "minitest"
66
gem "rails", "~> 5"
77
gem "sqlite3"
88
gem "mysql2"
9+
gem "pg"
910

1011
gemspec path: "../"

gemfiles/rails_6.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ gem "minitest"
66
gem "rails", "~> 6"
77
gem "sqlite3"
88
gem "mysql2"
9+
gem "pg"
910

1011
gemspec path: "../"

test/bulk_insert/worker_test.rb

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,12 @@ class BulkInsertWorkerTest < ActiveSupport::TestCase
371371
pgsql_worker.add ["Yo", 15, false, nil, nil]
372372

373373
assert_statement_adapter pgsql_worker, 'BulkInsert::StatementAdapters::PostgreSQLAdapter'
374-
assert_equal pgsql_worker.compose_insert_query, "INSERT INTO \"testings\" (\"greeting\",\"age\",\"happy\",\"created_at\",\"updated_at\",\"color\") VALUES ('Yo',15,0,NULL,NULL,'chartreuse') ON CONFLICT DO NOTHING RETURNING id"
374+
375+
if ActiveRecord::VERSION::STRING >= "5.0.0"
376+
assert_equal pgsql_worker.compose_insert_query, "INSERT INTO \"testings\" (\"greeting\",\"age\",\"happy\",\"created_at\",\"updated_at\",\"color\") VALUES ('Yo',15,FALSE,NULL,NULL,'chartreuse') ON CONFLICT DO NOTHING RETURNING id"
377+
else
378+
assert_equal pgsql_worker.compose_insert_query, "INSERT INTO \"testings\" (\"greeting\",\"age\",\"happy\",\"created_at\",\"updated_at\",\"color\") VALUES ('Yo',15,'f',NULL,NULL,'chartreuse') ON CONFLICT DO NOTHING RETURNING id"
379+
end
375380
end
376381
end
377382

@@ -392,7 +397,12 @@ class BulkInsertWorkerTest < ActiveSupport::TestCase
392397
pgsql_worker.add ["Yo", 15, false, nil, nil]
393398

394399
assert_statement_adapter pgsql_worker, 'BulkInsert::StatementAdapters::PostgreSQLAdapter'
395-
assert_equal pgsql_worker.compose_insert_query, "INSERT INTO \"testings\" (\"greeting\",\"age\",\"happy\",\"created_at\",\"updated_at\",\"color\") VALUES ('Yo',15,0,NULL,NULL,'chartreuse') RETURNING id"
400+
401+
if ActiveRecord::VERSION::STRING >= "5.0.0"
402+
assert_equal pgsql_worker.compose_insert_query, "INSERT INTO \"testings\" (\"greeting\",\"age\",\"happy\",\"created_at\",\"updated_at\",\"color\") VALUES ('Yo',15,FALSE,NULL,NULL,'chartreuse') RETURNING id"
403+
else
404+
assert_equal pgsql_worker.compose_insert_query, "INSERT INTO \"testings\" (\"greeting\",\"age\",\"happy\",\"created_at\",\"updated_at\",\"color\") VALUES ('Yo',15,'f',NULL,NULL,'chartreuse') RETURNING id"
405+
end
396406
end
397407
end
398408

@@ -412,7 +422,12 @@ class BulkInsertWorkerTest < ActiveSupport::TestCase
412422
pgsql_worker.add ["Yo", 15, false, nil, nil]
413423

414424
assert_statement_adapter pgsql_worker, 'BulkInsert::StatementAdapters::PostgreSQLAdapter'
415-
assert_equal pgsql_worker.compose_insert_query, "INSERT INTO \"testings\" (\"greeting\",\"age\",\"happy\",\"created_at\",\"updated_at\",\"color\") VALUES ('Yo',15,0,NULL,NULL,'chartreuse') ON CONFLICT(greeting, age, happy) DO UPDATE SET greeting=EXCLUDED.greeting, age=EXCLUDED.age, happy=EXCLUDED.happy, created_at=EXCLUDED.created_at, updated_at=EXCLUDED.updated_at, color=EXCLUDED.color RETURNING id"
425+
426+
if ActiveRecord::VERSION::STRING >= "5.0.0"
427+
assert_equal pgsql_worker.compose_insert_query, "INSERT INTO \"testings\" (\"greeting\",\"age\",\"happy\",\"created_at\",\"updated_at\",\"color\") VALUES ('Yo',15,FALSE,NULL,NULL,'chartreuse') ON CONFLICT(greeting, age, happy) DO UPDATE SET greeting=EXCLUDED.greeting, age=EXCLUDED.age, happy=EXCLUDED.happy, created_at=EXCLUDED.created_at, updated_at=EXCLUDED.updated_at, color=EXCLUDED.color RETURNING id"
428+
else
429+
assert_equal pgsql_worker.compose_insert_query, "INSERT INTO \"testings\" (\"greeting\",\"age\",\"happy\",\"created_at\",\"updated_at\",\"color\") VALUES ('Yo',15,'f',NULL,NULL,'chartreuse') ON CONFLICT(greeting, age, happy) DO UPDATE SET greeting=EXCLUDED.greeting, age=EXCLUDED.age, happy=EXCLUDED.happy, created_at=EXCLUDED.created_at, updated_at=EXCLUDED.updated_at, color=EXCLUDED.color RETURNING id"
430+
end
416431
end
417432
end
418433

@@ -432,7 +447,12 @@ class BulkInsertWorkerTest < ActiveSupport::TestCase
432447
pgsql_worker.add ["Yo", 15, false, nil, nil]
433448

434449
assert_statement_adapter pgsql_worker, 'BulkInsert::StatementAdapters::PostgreSQLAdapter'
435-
assert_equal pgsql_worker.compose_insert_query, "INSERT INTO \"testings\" (\"greeting\",\"age\",\"happy\",\"created_at\",\"updated_at\",\"color\") VALUES ('Yo',15,0,NULL,NULL,'chartreuse') ON CONFLICT DO NOTHING RETURNING id"
450+
451+
if ActiveRecord::VERSION::STRING >= "5.0.0"
452+
assert_equal pgsql_worker.compose_insert_query, "INSERT INTO \"testings\" (\"greeting\",\"age\",\"happy\",\"created_at\",\"updated_at\",\"color\") VALUES ('Yo',15,FALSE,NULL,NULL,'chartreuse') ON CONFLICT DO NOTHING RETURNING id"
453+
else
454+
assert_equal pgsql_worker.compose_insert_query, "INSERT INTO \"testings\" (\"greeting\",\"age\",\"happy\",\"created_at\",\"updated_at\",\"color\") VALUES ('Yo',15,'f',NULL,NULL,'chartreuse') ON CONFLICT DO NOTHING RETURNING id"
455+
end
436456
end
437457
end
438458

0 commit comments

Comments
 (0)