schema_plus_views 0.3.1 → 1.0.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.
Files changed (40) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/prs.yml +194 -0
  3. data/.gitignore +1 -0
  4. data/.simplecov +20 -0
  5. data/Gemfile +4 -1
  6. data/README.md +58 -31
  7. data/Rakefile +2 -0
  8. data/gemfiles/Gemfile.base +1 -1
  9. data/gemfiles/activerecord-5.2/Gemfile.base +4 -0
  10. data/gemfiles/activerecord-5.2/Gemfile.mysql2 +10 -0
  11. data/gemfiles/activerecord-5.2/Gemfile.postgresql +10 -0
  12. data/gemfiles/{activerecord-4.2 → activerecord-5.2}/Gemfile.sqlite3 +3 -3
  13. data/gemfiles/activerecord-6.0/Gemfile.base +4 -0
  14. data/gemfiles/activerecord-6.0/Gemfile.mysql2 +10 -0
  15. data/gemfiles/activerecord-6.0/Gemfile.postgresql +10 -0
  16. data/gemfiles/activerecord-6.0/Gemfile.sqlite3 +10 -0
  17. data/lib/schema_plus/views/active_record/connection_adapters/abstract_adapter.rb +21 -5
  18. data/lib/schema_plus/views/active_record/connection_adapters/mysql2_adapter.rb +7 -11
  19. data/lib/schema_plus/views/active_record/connection_adapters/postgresql_adapter.rb +76 -17
  20. data/lib/schema_plus/views/active_record/connection_adapters/sqlite3_adapter.rb +7 -9
  21. data/lib/schema_plus/views/active_record/migration/command_recorder.rb +5 -1
  22. data/lib/schema_plus/views/middleware.rb +35 -34
  23. data/lib/schema_plus/views/schema_dump.rb +28 -0
  24. data/lib/schema_plus/views/version.rb +3 -1
  25. data/lib/schema_plus/views.rb +3 -0
  26. data/lib/schema_plus_views.rb +2 -0
  27. data/schema_dev.yml +7 -2
  28. data/schema_plus_views.gemspec +10 -9
  29. data/spec/dumper_spec.rb +60 -10
  30. data/spec/introspection_spec.rb +54 -6
  31. data/spec/middleware_spec.rb +3 -18
  32. data/spec/migration_spec.rb +108 -58
  33. data/spec/named_schemas_spec.rb +10 -42
  34. data/spec/sanity_spec.rb +2 -0
  35. data/spec/spec_helper.rb +16 -3
  36. metadata +39 -56
  37. data/.travis.yml +0 -18
  38. data/gemfiles/activerecord-4.2/Gemfile.base +0 -3
  39. data/gemfiles/activerecord-4.2/Gemfile.mysql2 +0 -10
  40. data/gemfiles/activerecord-4.2/Gemfile.postgresql +0 -10
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  class Item < ActiveRecord::Base
@@ -13,100 +15,148 @@ describe "Migration" do
13
15
 
14
16
  let(:migration) { ActiveRecord::Migration }
15
17
  let(:connection) { ActiveRecord::Base.connection }
16
- let(:schema) { ActiveRecord::Schema }
17
18
 
18
19
  before(:each) do
19
20
  define_schema_and_data
20
21
  end
21
22
 
22
- context "creation" do
23
- it "should create correct views" do
24
- expect(AOnes.all.collect(&:s)).to eq(%W[one_one one_two])
25
- expect(ABOnes.all.collect(&:s)).to eq(%W[one_one])
23
+ shared_examples 'view checks' do |options = {}|
24
+ context "creation" do
25
+ it "should create correct views" do
26
+ expect(AOnes.all.collect(&:s)).to eq(%W[one_one one_two])
27
+ expect(ABOnes.all.collect(&:s)).to eq(%W[one_one])
28
+ end
26
29
  end
27
- end
28
30
 
29
- context "duplicate creation" do
30
- before(:each) do
31
- migration.create_view('dupe_me', 'SELECT * FROM items WHERE (a=1)')
32
- end
31
+ context "duplicate creation" do
32
+ before(:each) do
33
+ migration.create_view('dupe_me', 'SELECT * FROM items WHERE (a=1)', options)
34
+ end
33
35
 
34
- it "should raise an error by default" do
35
- expect {migration.create_view('dupe_me', 'SELECT * FROM items WHERE (a=2)')}.to raise_error ActiveRecord::StatementInvalid
36
- end
36
+ it "should raise an error by default" do
37
+ expect { migration.create_view('dupe_me', 'SELECT * FROM items WHERE (a=2)', options) }.to raise_error ActiveRecord::StatementInvalid
38
+ end
37
39
 
38
- it "should override existing definition if :force true" do
39
- migration.create_view('dupe_me', 'SELECT * FROM items WHERE (a=2)', :force => true)
40
- expect(connection.view_definition('dupe_me')).to match(%r{WHERE .*a.*=.*2}i)
41
- end
42
-
43
- context "Postgres and MySQL only", :sqlite3 => :skip do
44
- it "should override existing definition if :allow_replace is true" do
45
- migration.create_view('dupe_me', 'SELECT * FROM items WHERE (a=2)', :allow_replace => true)
40
+ it "should override existing definition if :force true" do
41
+ migration.create_view('dupe_me', 'SELECT * FROM items WHERE (a=2)', options.merge(force: true))
46
42
  expect(connection.view_definition('dupe_me')).to match(%r{WHERE .*a.*=.*2}i)
47
43
  end
48
- end
49
- end
50
44
 
51
- context "dropping" do
52
- it "should raise an error if the view doesn't exist" do
53
- expect { migration.drop_view('doesnt_exist') }.to raise_error ActiveRecord::StatementInvalid
45
+ unless options[:materialized]
46
+ context "Postgres and MySQL only", :sqlite3 => :skip do
47
+ it "should override existing definition if :allow_replace is true" do
48
+ migration.create_view('dupe_me', 'SELECT * FROM items WHERE (a=2)', options.merge(allow_replace: true))
49
+ expect(connection.view_definition('dupe_me')).to match(%r{WHERE .*a.*=.*2}i)
50
+ end
51
+ end
52
+ end
54
53
  end
55
54
 
56
- it "should fail silently when using if_exists option" do
57
- expect { migration.drop_view('doesnt_exist', :if_exists => true) }.not_to raise_error
55
+ context "dropping" do
56
+ it "should raise an error if the view doesn't exist" do
57
+ expect { migration.drop_view('doesnt_exist', options) }.to raise_error ActiveRecord::StatementInvalid
58
+ end
59
+
60
+ it "should fail silently when using if_exists option" do
61
+ expect { migration.drop_view('doesnt_exist', options.merge(if_exists: true)) }.not_to raise_error
62
+ end
63
+
64
+ context "with a view that exists" do
65
+ before { migration.create_view('view_that_exists', 'SELECT * FROM items WHERE (a=1)', options) }
66
+
67
+ it "should succeed" do
68
+ migration.drop_view('view_that_exists', options)
69
+ expect(connection.views).not_to include('view_that_exists')
70
+ end
71
+ end
58
72
  end
59
73
 
60
- context "with a view that exists" do
61
- before { migration.create_view('view_that_exists', 'SELECT * FROM items WHERE (a=1)') }
74
+ describe "rollback" do
75
+ it "properly rolls back a create_view" do
76
+ m = build_migration do
77
+ define_method(:change) {
78
+ create_view :copy, "SELECT * FROM items", options
79
+ }
80
+ end
81
+ m.migrate(:up)
82
+ expect(connection.views).to include("copy")
83
+ m.migrate(:down)
84
+ expect(connection.views).not_to include("copy")
85
+ end
62
86
 
63
- it "should succeed" do
64
- migration.drop_view('view_that_exists')
65
- expect(connection.views).not_to include('view_that_exists')
87
+ it "raises error for drop_view" do
88
+ m = build_migration do
89
+ define_method(:change) {
90
+ drop_view :a_ones, options
91
+ }
92
+ end
93
+ expect { m.migrate(:down) }.to raise_error(::ActiveRecord::IrreversibleMigration)
66
94
  end
67
95
  end
68
96
  end
69
97
 
70
- describe "rollback" do
71
- it "properly rolls back a create_view" do
72
- m = Class.new ::ActiveRecord::Migration do
73
- define_method(:change) {
74
- create_view :copy, "SELECT * FROM items"
75
- }
98
+ describe 'regular views' do
99
+ before(:each) do
100
+ apply_migration do
101
+ create_view :a_ones, Item.select('b, s').where(:a => 1)
102
+ create_view :ab_ones, "select s from a_ones where b = 1"
76
103
  end
77
- m.migrate(:up)
78
- expect(connection.views).to include("copy")
79
- m.migrate(:down)
80
- expect(connection.views).not_to include("copy")
81
104
  end
82
105
 
83
- it "raises error for drop_view" do
84
- m = Class.new ::ActiveRecord::Migration do
85
- define_method(:change) {
86
- drop_view :a_ones
87
- }
106
+ include_examples 'view checks'
107
+ end
108
+
109
+ describe 'materialized views', postgresql: :only do
110
+ before(:each) do
111
+ apply_migration do
112
+ create_view :a_ones, Item.select('b, s').where(:a => 1), materialized: true
113
+ create_view :ab_ones, "select s from items where a = 1 AND b = 1", materialized: true
88
114
  end
89
- expect { m.migrate(:down) }.to raise_error(::ActiveRecord::IrreversibleMigration)
90
115
  end
91
- end
92
116
 
117
+ include_examples 'view checks', materialized: true
118
+
119
+ describe 'refreshing the view' do
120
+ it "refreshes the view" do
121
+ expect(AOnes.count).to eq(2)
122
+ Item.create!(a: 1, b: 3, s: 'one_three')
123
+ expect(AOnes.count).to eq(2)
124
+ connection.refresh_view('a_ones')
125
+ expect(AOnes.count).to eq(3)
126
+ end
127
+ end
128
+
129
+ context 'with indexes' do
130
+ it 'allows creating indexes on the materialized view' do
131
+ apply_migration do
132
+ add_index :a_ones, :s
133
+ add_index :a_ones, :b, unique: true
134
+ end
135
+
136
+ expect(connection.indexes(:a_ones)).to contain_exactly(
137
+ have_attributes(columns: ['s'], unique: false),
138
+ have_attributes(columns: ['b'], unique: true)
139
+ )
140
+ end
141
+ end
142
+ end
93
143
 
94
144
  protected
95
145
 
96
146
  def define_schema_and_data
97
- connection.views.each do |view| connection.drop_view view end
98
- connection.tables.each do |table| connection.drop_table table, cascade: true end
99
-
100
- schema.define do
147
+ connection.views.each do |view|
148
+ connection.drop_view view
149
+ end
150
+ connection.tables.each do |table|
151
+ connection.drop_table table, cascade: true
152
+ end
101
153
 
154
+ apply_migration do
102
155
  create_table :items, :force => true do |t|
103
156
  t.integer :a
104
157
  t.integer :b
105
- t.string :s
158
+ t.string :s
106
159
  end
107
-
108
- create_view :a_ones, Item.select('b, s').where(:a => 1)
109
- create_view :ab_ones, "select s from a_ones where b = 1"
110
160
  end
111
161
  connection.execute "insert into items (a, b, s) values (1, 1, 'one_one')"
112
162
  connection.execute "insert into items (a, b, s) values (1, 2, 'one_two')"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe "with multiple schemas" do
@@ -6,10 +8,10 @@ describe "with multiple schemas" do
6
8
  end
7
9
 
8
10
  before(:each) do
9
- newdb = case connection.adapter_name
10
- when /^mysql/i then "CREATE SCHEMA IF NOT EXISTS schema_plus_views_test2"
11
- when /^postgresql/i then "CREATE SCHEMA schema_plus_views_test2"
12
- when /^sqlite/i then "ATTACH ':memory:' AS schema_plus_views_test2"
11
+ newdb = case
12
+ when SchemaDev::Rspec::Helpers.mysql? then "CREATE SCHEMA IF NOT EXISTS schema_plus_views_test2"
13
+ when SchemaDev::Rspec::Helpers.postgresql? then "CREATE SCHEMA schema_plus_views_test2"
14
+ when SchemaDev::Rspec::Helpers.sqlite3? then "ATTACH ':memory:' AS schema_plus_views_test2"
13
15
  end
14
16
  begin
15
17
  ActiveRecord::Base.connection.execute newdb
@@ -28,10 +30,10 @@ describe "with multiple schemas" do
28
30
  end
29
31
 
30
32
  connection.execute 'DROP TABLE IF EXISTS schema_plus_views_test2.users'
31
- connection.execute 'CREATE TABLE schema_plus_views_test2.users (id ' + case connection.adapter_name
32
- when /^mysql/i then "integer primary key auto_increment"
33
- when /^postgresql/i then "serial primary key"
34
- when /^sqlite/i then "integer primary key autoincrement"
33
+ connection.execute 'CREATE TABLE schema_plus_views_test2.users (id ' + case
34
+ when SchemaDev::Rspec::Helpers.mysql? then "integer primary key auto_increment"
35
+ when SchemaDev::Rspec::Helpers.postgresql? then "serial primary key"
36
+ when SchemaDev::Rspec::Helpers.sqlite3? then "integer primary key autoincrement"
35
37
  end + ", login varchar(255))"
36
38
  end
37
39
 
@@ -60,38 +62,4 @@ describe "with multiple schemas" do
60
62
  end
61
63
  end
62
64
 
63
- context "when using PostGIS", :postgresql => :only do
64
- before(:all) do
65
- begin
66
- connection.execute "CREATE SCHEMA postgis"
67
- rescue ActiveRecord::StatementInvalid => e
68
- raise unless e.message =~ /already exists/
69
- end
70
- end
71
-
72
- around(:each) do |example|
73
- begin
74
- connection.execute "SET search_path to '$user','public','postgis'"
75
- example.run
76
- ensure
77
- connection.execute "SET search_path to '$user','public'"
78
- end
79
- end
80
-
81
- before(:each) do
82
- allow(connection).to receive(:adapter_name).and_return('PostGIS')
83
- end
84
-
85
- it "should hide views in postgis schema" do
86
- begin
87
- connection.create_view "postgis.hidden", "select 1", :force => true
88
- connection.create_view :myview, "select 2", :force => true
89
- expect(connection.views).to eq(["myview"])
90
- ensure
91
- connection.execute 'DROP VIEW postgis.hidden' rescue nil
92
- connection.execute 'DROP VIEW myview' rescue nil
93
- end
94
- end
95
- end
96
-
97
65
  end
data/spec/sanity_spec.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
 
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'simplecov'
2
- require 'simplecov-gem-profile'
3
- SimpleCov.start "gem"
4
+ SimpleCov.start
4
5
 
5
6
  $LOAD_PATH.unshift(File.dirname(__FILE__))
6
7
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
@@ -12,7 +13,7 @@ require 'schema_dev/rspec'
12
13
 
13
14
  SchemaDev::Rspec.setup
14
15
 
15
- Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
16
+ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each { |f| require f }
16
17
 
17
18
  RSpec.configure do |config|
18
19
  config.warnings = true
@@ -29,4 +30,16 @@ RSpec.configure do |config|
29
30
  end
30
31
  end
31
32
 
33
+ def apply_migration(config = {}, &block)
34
+ ActiveRecord::Schema.define do
35
+ instance_eval &block
36
+ end
37
+ end
38
+
39
+ def build_migration(version: 5.0, &block)
40
+ Class.new(::ActiveRecord::Migration[version]) do
41
+ instance_eval &block
42
+ end
43
+ end
44
+
32
45
  SimpleCov.command_name "[ruby #{RUBY_VERSION} - ActiveRecord #{::ActiveRecord::VERSION::STRING} - #{ActiveRecord::Base.connection.adapter_name}]"
metadata CHANGED
@@ -1,71 +1,77 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schema_plus_views
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ronen barzel
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-24 00:00:00.000000000 Z
11
+ date: 2022-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '5.2'
20
+ - - "<"
18
21
  - !ruby/object:Gem::Version
19
- version: '4.2'
22
+ version: '6.1'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '5.2'
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: '4.2'
32
+ version: '6.1'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: schema_plus_core
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '1.0'
39
+ version: '3.0'
34
40
  type: :runtime
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: '1.0'
46
+ version: '3.0'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: bundler
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - "~>"
51
+ - - ">="
46
52
  - !ruby/object:Gem::Version
47
- version: '1.7'
53
+ version: '0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - "~>"
58
+ - - ">="
53
59
  - !ruby/object:Gem::Version
54
- version: '1.7'
60
+ version: '0'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: rake
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '10.0'
67
+ version: '13.0'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: '10.0'
74
+ version: '13.0'
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: rspec
71
77
  requirement: !ruby/object:Gem::Requirement
@@ -86,60 +92,37 @@ dependencies:
86
92
  requirements:
87
93
  - - "~>"
88
94
  - !ruby/object:Gem::Version
89
- version: '3.6'
95
+ version: '4.1'
90
96
  type: :development
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
100
  - - "~>"
95
101
  - !ruby/object:Gem::Version
96
- version: '3.6'
97
- - !ruby/object:Gem::Dependency
98
- name: simplecov
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: simplecov-gem-profile
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- description:
102
+ version: '4.1'
103
+ description:
126
104
  email:
127
105
  - ronen@barzel.org
128
106
  executables: []
129
107
  extensions: []
130
108
  extra_rdoc_files: []
131
109
  files:
110
+ - ".github/workflows/prs.yml"
132
111
  - ".gitignore"
133
- - ".travis.yml"
112
+ - ".simplecov"
134
113
  - Gemfile
135
114
  - LICENSE.txt
136
115
  - README.md
137
116
  - Rakefile
138
117
  - gemfiles/Gemfile.base
139
- - gemfiles/activerecord-4.2/Gemfile.base
140
- - gemfiles/activerecord-4.2/Gemfile.mysql2
141
- - gemfiles/activerecord-4.2/Gemfile.postgresql
142
- - gemfiles/activerecord-4.2/Gemfile.sqlite3
118
+ - gemfiles/activerecord-5.2/Gemfile.base
119
+ - gemfiles/activerecord-5.2/Gemfile.mysql2
120
+ - gemfiles/activerecord-5.2/Gemfile.postgresql
121
+ - gemfiles/activerecord-5.2/Gemfile.sqlite3
122
+ - gemfiles/activerecord-6.0/Gemfile.base
123
+ - gemfiles/activerecord-6.0/Gemfile.mysql2
124
+ - gemfiles/activerecord-6.0/Gemfile.postgresql
125
+ - gemfiles/activerecord-6.0/Gemfile.sqlite3
143
126
  - lib/schema_plus/views.rb
144
127
  - lib/schema_plus/views/active_record/connection_adapters/abstract_adapter.rb
145
128
  - lib/schema_plus/views/active_record/connection_adapters/mysql2_adapter.rb
@@ -147,6 +130,7 @@ files:
147
130
  - lib/schema_plus/views/active_record/connection_adapters/sqlite3_adapter.rb
148
131
  - lib/schema_plus/views/active_record/migration/command_recorder.rb
149
132
  - lib/schema_plus/views/middleware.rb
133
+ - lib/schema_plus/views/schema_dump.rb
150
134
  - lib/schema_plus/views/version.rb
151
135
  - lib/schema_plus_views.rb
152
136
  - schema_dev.yml
@@ -162,7 +146,7 @@ homepage: https://github.com/SchemaPlus/schema_plus_views
162
146
  licenses:
163
147
  - MIT
164
148
  metadata: {}
165
- post_install_message:
149
+ post_install_message:
166
150
  rdoc_options: []
167
151
  require_paths:
168
152
  - lib
@@ -170,16 +154,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
170
154
  requirements:
171
155
  - - ">="
172
156
  - !ruby/object:Gem::Version
173
- version: '0'
157
+ version: '2.5'
174
158
  required_rubygems_version: !ruby/object:Gem::Requirement
175
159
  requirements:
176
160
  - - ">="
177
161
  - !ruby/object:Gem::Version
178
162
  version: '0'
179
163
  requirements: []
180
- rubyforge_project:
181
- rubygems_version: 2.2.2
182
- signing_key:
164
+ rubygems_version: 3.0.8
165
+ signing_key:
183
166
  specification_version: 4
184
167
  summary: Adds support for views to ActiveRecord
185
168
  test_files:
data/.travis.yml DELETED
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by the schema_dev tool, based on the data in
2
- # ./schema_dev.yml
3
- # Please do not edit this file; any changes will be overwritten next time
4
- # schema_dev gets run.
5
- ---
6
- sudo: false
7
- rvm:
8
- - 2.1.5
9
- gemfile:
10
- - gemfiles/activerecord-4.2/Gemfile.mysql2
11
- - gemfiles/activerecord-4.2/Gemfile.postgresql
12
- - gemfiles/activerecord-4.2/Gemfile.sqlite3
13
- env: POSTGRESQL_DB_USER=postgres MYSQL_DB_USER=travis
14
- addons:
15
- postgresql: '9.4'
16
- before_script: bundle exec rake create_databases
17
- after_script: bundle exec rake drop_databases
18
- script: bundle exec rake travis
@@ -1,3 +0,0 @@
1
- eval File.read File.expand_path('../../Gemfile.base', __FILE__)
2
-
3
- gem "activerecord", "~> 4.2.6"
@@ -1,10 +0,0 @@
1
- require "pathname"
2
- eval(Pathname.new(__FILE__).dirname.join("Gemfile.base").read, binding)
3
-
4
- platform :ruby do
5
- gem "mysql2", '>= 0.3.18', '< 0.5'
6
- end
7
-
8
- platform :jruby do
9
- gem 'activerecord-jdbcmysql-adapter'
10
- end
@@ -1,10 +0,0 @@
1
- require "pathname"
2
- eval(Pathname.new(__FILE__).dirname.join("Gemfile.base").read, binding)
3
-
4
- platform :ruby do
5
- gem "pg"
6
- end
7
-
8
- platform :jruby do
9
- gem 'activerecord-jdbcpostgresql-adapter'
10
- end