secondbase 2.1.3 → 2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 52e65c2097a0ed5b421a91648ff01ad217357b47
4
- data.tar.gz: 2802624f4a57b8158925176a6e6302fbdaee7cff
2
+ SHA256:
3
+ metadata.gz: 50a36dde7d9dbe392942d1854faa776341dc78b9381441e2a87ddba807efe4b7
4
+ data.tar.gz: 21b56b48d13f5137e7f091c3fbf51dcac4750dd9e5109edde36fdb841337460d
5
5
  SHA512:
6
- metadata.gz: 22ab6d7bdded6031bdc9c5319005512c30e5a839287c954a5a2b53537b796fdb81e4c880a49efaa0067d53274357316d0cad2f87be4c576e75c00fa29497a90c
7
- data.tar.gz: 56102fe742b18eaeba5aefeeb929ad892b14472646bc7530a99e215d5af8bc5b1b6a5fe368c850a7f5866d38f059cf4c97dfd7b8878bb8e97eb202b946baec10
6
+ metadata.gz: 686bcef13af1432a2d547e09a04636f61c4009514d75cc7a78fa47208a474e7b4c4e8f16fed43e9a9b9b952fce84095ed2b9e1575ca2ed5ebd0faff0d717aa30
7
+ data.tar.gz: 1a25f683b3ae4ad3d05c7fd2346c709767a267568e8defe5932103ebb47e5dde43929d44e625eb2417bc6b6e336d3edcfb72bc6cd4626acf61cc319735d2d7fd
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ secondbase
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.7.2
data/.travis.yml CHANGED
@@ -1,13 +1,14 @@
1
1
  sudo: false
2
2
  cache: bundler
3
3
  rvm:
4
- - 2.2.2
5
- - 2.3.1
4
+ - 2.5.3
5
+ services:
6
+ - mysql
6
7
  gemfile:
7
- - gemfiles/rails40.gemfile
8
- - gemfiles/rails41.gemfile
9
- - gemfiles/rails42.gemfile
10
8
  - gemfiles/rails50.gemfile
9
+ - gemfiles/rails51.gemfile
10
+ - gemfiles/rails52.gemfile
11
+ - gemfiles/rails60.gemfile
11
12
  install:
12
13
  - gem install bundler
13
14
  - bundle --version
data/Appraisals CHANGED
@@ -17,3 +17,8 @@ appraise 'rails50' do
17
17
  gem 'rails', '~> 5.0.0'
18
18
  gem 'mysql2'
19
19
  end
20
+
21
+ appraise 'rails51' do
22
+ gem 'rails', '~> 5.1.0'
23
+ gem 'mysql2'
24
+ end
data/CHANGELOG.md CHANGED
@@ -2,63 +2,72 @@
2
2
 
3
3
  Please follow the format set down in http://keepachangelog.com
4
4
 
5
+ ## v2.2.0
6
+
7
+ - Added `structure:dump` task. Thanks @shqear93
8
+
9
+ ## v2.1.6
10
+
11
+ - Descriptions for Rake tasks. Fixes #60. Thanks @roolo.
12
+
13
+ ## v2.1.5
14
+
15
+ - Allow custom db paths to work. Fixes #51 #52. Thanks @MrJoy.
16
+
17
+ ## v2.1.4
18
+
19
+ - Rails v5.1 support.
20
+
5
21
  ## v2.1.3
6
22
 
7
23
  #### Fixed
8
24
 
9
- * Issue with explicit secondbase tasks not loading config. Fixes #43
10
-
25
+ - Issue with explicit secondbase tasks not loading config. Fixes #43
11
26
 
12
27
  ## v2.1.2
13
28
 
14
29
  #### Changed
15
30
 
16
- * Tested w Rails 5.0 release.
31
+ - Tested w Rails 5.0 release.
17
32
 
18
33
  #### Added
19
34
 
20
- * Support for schema cache. Fixes #40
21
-
35
+ - Support for schema cache. Fixes #40
22
36
 
23
37
  ## v2.1.1
24
38
 
25
39
  #### Changed
26
40
 
27
- * Test updates to track rails 5 rc2.
28
-
41
+ - Test updates to track rails 5 rc2.
29
42
 
30
43
  ## v2.1.0
31
44
 
32
45
  #### Added
33
46
 
34
- * Ability to disable the database task patching (thanks [@agrberg](https://github.com/agrberg))
35
-
47
+ - Ability to disable the database task patching (thanks [@agrberg](https://github.com/agrberg))
36
48
 
37
49
  ## v2.0.0
38
50
 
39
51
  #### Added
40
52
 
41
- * Rails 5 support.
42
-
53
+ - Rails 5 support.
43
54
 
44
55
  ## v1.0.1
45
56
 
46
57
  #### Fixed
47
58
 
48
- * Fix base Rails migration generator. Fixes #25.
49
-
59
+ - Fix base Rails migration generator. Fixes #25.
50
60
 
51
61
  ## v1.0
52
62
 
53
63
  Initial re-write supporting Rails 4.x. Please see README.md for full details.
54
64
 
55
-
56
65
  ## v0.6
57
66
 
58
67
  Support for Rails 3.x. For 2.x support, check out the branch `rails_2_3` or version v0.5 of the gem.
59
68
 
60
69
  #### Fixed
61
70
 
62
- * The `has_and_belongs_to_many` associations, for SecondBase models.
63
- * Patched `ActiveRecord::TestFixtures` so that transactional fixture support is respected for the SecondBase.
64
- * Reorganized monkey patches to make it easier to work in fixes for different versions of Rails.
71
+ - The `has_and_belongs_to_many` associations, for SecondBase models.
72
+ - Patched `ActiveRecord::TestFixtures` so that transactional fixture support is respected for the SecondBase.
73
+ - Reorganized monkey patches to make it easier to work in fixes for different versions of Rails.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.3
1
+ 2.2.0
@@ -5,4 +5,4 @@ source "https://rubygems.org"
5
5
  gem "rails", "~> 5.0.0"
6
6
  gem "mysql2"
7
7
 
8
- gemspec :path => "../"
8
+ gemspec path: "../"
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rails", "~> 4.0.0"
6
- gem "mysql"
5
+ gem "rails", "~> 5.1.0"
6
+ gem "mysql2"
7
7
 
8
- gemspec :path => "../"
8
+ gemspec path: "../"
@@ -15,7 +15,11 @@ module SecondBase
15
15
  include(Module.new{
16
16
 
17
17
  def migration_template(*args)
18
- args[1].sub! 'db/migrate', "#{Railtie.config_path}/migrate" if args[1]
18
+ path = Pathname
19
+ .new(Rails.application.config.paths['db/migrate'].first)
20
+ .relative_path_from(Rails.root)
21
+ .to_s
22
+ args[1].sub! path, "#{Railtie.config_path}/migrate" if args[1]
19
23
  super(*args)
20
24
  end
21
25
 
@@ -2,59 +2,71 @@ namespace :db do
2
2
  namespace :second_base do
3
3
 
4
4
  namespace :create do
5
+ desc 'Creates ALL DBs configured for Second base' unless SecondBase::Railtie.run_with_db_tasks?
5
6
  task :all => ['db:load_config'] do
6
7
  SecondBase.on_base { Rake::Task['db:create:all'].execute }
7
8
  end
8
9
  end
9
10
 
11
+ desc 'Creates the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:secondbase:create:all to create all databases in the config). Without RAILS_ENV it defaults to creating the development and test databases.' unless SecondBase::Railtie.run_with_db_tasks?
10
12
  task :create => ['db:load_config'] do
11
13
  SecondBase.on_base { Rake::Task['db:create'].execute }
12
14
  end
13
15
 
14
16
  namespace :drop do
17
+ desc 'Drops the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:secondbase:drop:all to drop all databases in the config). Without RAILS_ENV it defaults to dropping the development and test databases.' unless SecondBase::Railtie.run_with_db_tasks?
15
18
  task :all => ['db:load_config'] do
16
19
  SecondBase.on_base { Rake::Task['db:drop:all'].execute }
17
20
  end
18
21
  end
19
22
 
20
23
  namespace :purge do
24
+ desc 'Purges (empties) ALL DBs configured for Second base' unless SecondBase::Railtie.run_with_db_tasks?
21
25
  task :all => ['db:load_config'] do
22
26
  SecondBase.on_base { Rake::Task['db:purge:all'].execute }
23
27
  end
24
28
  end
25
29
 
30
+ desc 'Empty the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:secondbase:drop:all to drop all databases in the config). Without RAILS_ENV it defaults to purging the development and test databases.' unless SecondBase::Railtie.run_with_db_tasks?
26
31
  task :purge => ['db:load_config'] do
27
32
  SecondBase.on_base { Rake::Task['db:purge'].execute }
28
33
  end
29
34
 
35
+ desc 'Migrate the database (options: VERSION=x, VERBOSE=false, SCOPE=blog).' unless SecondBase::Railtie.run_with_db_tasks?
30
36
  task :migrate => ['db:load_config'] do
31
37
  SecondBase.on_base { Rake::Task['db:migrate'].execute }
32
38
  end
33
39
 
34
40
  namespace :migrate do
35
41
 
42
+ desc 'Rollbacks the database one migration and re migrate up (options: STEP=x, VERSION=x).' unless SecondBase::Railtie.run_with_db_tasks?
36
43
  task :redo => ['db:load_config'] do
37
44
  SecondBase.on_base { Rake::Task['db:migrate:redo'].execute }
38
45
  end
39
46
 
47
+ desc 'Runs the "up" for a given migration VERSION.'
40
48
  task :up => ['db:load_config'] do
41
49
  SecondBase.on_base { Rake::Task['db:migrate:up'].execute }
42
50
  end
43
51
 
52
+ desc 'Runs the "down" for a given migration VERSION.'
44
53
  task :down => ['db:load_config'] do
45
54
  SecondBase.on_base { Rake::Task['db:migrate:down'].execute }
46
55
  end
47
56
 
57
+ desc 'Display status of migrations'
48
58
  task :status => ['db:load_config'] do
49
59
  SecondBase.on_base { Rake::Task['db:migrate:status'].execute }
50
60
  end
51
61
 
52
62
  end
53
63
 
64
+ desc 'Rolls the schema back to the previous version (specify steps w/ STEP=n).'
54
65
  task :rollback => ['db:load_config'] do
55
66
  SecondBase.on_base { Rake::Task['db:rollback'].execute }
56
67
  end
57
68
 
69
+ desc 'Drops and recreates the database from db/schema.rb for the current environment and loads the seeds.'
58
70
  task :forward => ['db:load_config'] do
59
71
  SecondBase.on_base { Rake::Task['db:forward'].execute }
60
72
  end
@@ -63,18 +75,19 @@ namespace :db do
63
75
  SecondBase.on_base { Rake::Task['db:abort_if_pending_migrations'].execute }
64
76
  end
65
77
 
78
+ desc 'Retrieves the current schema version number'
66
79
  task :version => ['db:load_config'] do
67
80
  SecondBase.on_base { Rake::Task['db:version'].execute }
68
81
  end
69
82
 
70
83
  namespace :schema do
71
-
84
+ # desc 'Load a schema.rb file into the database' unless SecondBase::Railtie.run_with_db_tasks?
72
85
  task :load => ['db:load_config'] do
73
86
  SecondBase.on_base { Rake::Task['db:schema:load'].execute }
74
87
  end
75
88
 
76
89
  namespace :cache do
77
-
90
+ desc 'Create a db/schema_cache.dump file.' unless SecondBase::Railtie.run_with_db_tasks?
78
91
  task :dump => ['db:load_config'] do
79
92
  SecondBase.on_base { Rake::Task['db:schema:cache:dump'].execute }
80
93
  end
@@ -84,27 +97,35 @@ namespace :db do
84
97
  end
85
98
 
86
99
  namespace :structure do
87
-
100
+ # desc 'Recreate the databases from the structure.sql file' unless SecondBase::Railtie.run_with_db_tasks?
88
101
  task :load => ['db:load_config'] do
89
102
  SecondBase.on_base { Rake::Task['db:structure:load'].execute }
90
103
  end
91
104
 
105
+ # desc 'Dumps the databases to structure.sql file'
106
+ task :dump => ['db:load_config'] do
107
+ SecondBase.on_base { Rake::Task['db:structure:dump'].execute }
108
+ end
109
+
92
110
  end
93
111
 
94
112
  namespace :test do
95
-
113
+ desc 'Empty the test database' unless SecondBase::Railtie.run_with_db_tasks?
96
114
  task :purge => ['db:load_config'] do
97
115
  SecondBase.on_base { Rake::Task['db:test:purge'].execute }
98
116
  end
99
117
 
118
+ # desc 'Recreate the test database from an existent schema.rb file' unless SecondBase::Railtie.run_with_db_tasks?
100
119
  task :load_schema => ['db:load_config'] do
101
120
  SecondBase.on_base { Rake::Task['db:test:load_schema'].execute }
102
121
  end
103
122
 
123
+ # desc 'Recreate the test database from the current schema' unless SecondBase::Railtie.run_with_db_tasks?
104
124
  task :load_structure => ['db:load_config'] do
105
125
  SecondBase.on_base { Rake::Task['db:test:load_structure'].execute }
106
126
  end
107
127
 
128
+ desc 'Check for pending migrations and load the test schema' unless SecondBase::Railtie.run_with_db_tasks?
108
129
  task :prepare => ['db:load_config'] do
109
130
  SecondBase.on_base { Rake::Task['db:test:prepare'].execute }
110
131
  end
@@ -117,7 +138,7 @@ end
117
138
  %w{
118
139
  create:all create drop:all purge:all purge
119
140
  migrate migrate:status abort_if_pending_migrations
120
- schema:load schema:cache:dump structure:load
141
+ schema:load schema:cache:dump structure:load structure:dump
121
142
  test:purge test:load_schema test:load_structure test:prepare
122
143
  }.each do |name|
123
144
  task = Rake::Task["db:#{name}"] rescue nil
@@ -5,6 +5,7 @@ namespace :db do
5
5
  end
6
6
 
7
7
  namespace :migrate do
8
+ desc 'Resets SecondBase database using your migrations for the current environment'
8
9
  task :reset => ['db:second_base:drop:_unsafe', 'db:second_base:create', 'db:second_base:migrate']
9
10
  end
10
11
  end
@@ -5,6 +5,7 @@ namespace :db do
5
5
  end
6
6
 
7
7
  namespace :migrate do
8
+ desc 'Resets SecondBase database using your migrations for the current environment'
8
9
  task :reset => ['db:second_base:drop', 'db:second_base:create', 'db:second_base:migrate']
9
10
  end
10
11
  end
@@ -10,7 +10,7 @@ module SecondBase
10
10
  return
11
11
  end
12
12
  original_config = ActiveRecord::Tasks::DatabaseTasks.current_config
13
- original_configurations = ActiveRecord::Base.configurations
13
+ original_configurations = Rails.application.config.database_configuration
14
14
  original_migrations_path = ActiveRecord::Tasks::DatabaseTasks.migrations_paths
15
15
  original_db_dir = ActiveRecord::Tasks::DatabaseTasks.db_dir
16
16
  ActiveRecord::Tasks::DatabaseTasks.current_config = config
data/lib/second_base.rb CHANGED
@@ -13,7 +13,7 @@ module SecondBase
13
13
  autoload :Base
14
14
 
15
15
  def self.config(env = nil)
16
- config = ActiveRecord::Base.configurations[Railtie.config_key]
16
+ config = Rails.application.config.database_configuration[Railtie.config_key]
17
17
  config ? config[env || Rails.env] : nil
18
18
  end
19
19
 
data/secondbase.gemspec CHANGED
@@ -17,9 +17,9 @@ Gem::Specification.new do |s|
17
17
  s.rdoc_options = ['--charset=UTF-8']
18
18
  s.license = 'MIT'
19
19
  s.add_runtime_dependency 'rails', '>= 4.0'
20
+ s.add_development_dependency 'rake', '11.3.0'
20
21
  s.add_development_dependency 'appraisal'
21
22
  s.add_development_dependency 'pry'
22
- s.add_development_dependency 'rake'
23
- s.add_development_dependency 'sqlite3'
23
+ s.add_development_dependency 'sqlite3', '1.3.13'
24
24
  s.add_development_dependency 'yard'
25
25
  end
@@ -176,7 +176,20 @@ class DbTaskTest < SecondBase::TestCase
176
176
  assert_connection_tables SecondBase::Base, ['comments']
177
177
  end
178
178
 
179
+ def test_db_test_load_schema_via_env
180
+ run_db :create
181
+ assert_dummy_databases
182
+ run_db 'test:purge'
183
+ Dir.chdir(dummy_root) { `env SCHEMA_FORMAT=ruby rake db:migrate` }
184
+ Dir.chdir(dummy_root) { `rake db:test:load_schema` }
185
+ establish_connection
186
+ assert_connection_tables ActiveRecord::Base, ['users', 'posts']
187
+ assert_connection_tables SecondBase::Base, ['comments']
188
+ end
189
+
179
190
  def test_db_test_schema_cache_dump
191
+ # this is a bug in rails >5.1.1
192
+ return if Rails::VERSION::STRING.start_with?("5.1")
180
193
  run_db :create
181
194
  run_db :migrate
182
195
  assert_dummy_databases
@@ -1,2 +1,2 @@
1
- require File.expand_path '../init', __FILE__
1
+ require_relative 'config/init'
2
2
  Dummy::Application.load_tasks
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- APP_PATH = File.expand_path('../../init', __FILE__)
3
+ APP_PATH = File.expand_path('../../config/init', __FILE__)
4
4
  require APP_PATH
5
5
  require 'rails/commands'
@@ -1,5 +1,5 @@
1
1
  ENV['RAILS_ENV'] ||= 'test'
2
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __FILE__)
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
3
3
  require 'bundler/setup'
4
4
  require 'rails/all'
5
5
  Bundler.require(:default, Rails.env)
@@ -8,7 +8,7 @@ module Dummy
8
8
  class Application < ::Rails::Application
9
9
 
10
10
  # Basic Engine
11
- config.root = File.join __FILE__, '..'
11
+ config.root = File.join __FILE__, '..', '..'
12
12
  config.cache_store = :memory_store
13
13
  config.assets.enabled = false
14
14
  config.secret_token = '012345678901234567890123456789'
@@ -31,7 +31,7 @@ module Dummy
31
31
  # Keep pending test:prepare via pending migrations from running.
32
32
  config.active_record.maintain_test_schema = false if ActiveRecord::Base.respond_to?(:maintain_test_schema)
33
33
 
34
- config.active_record.schema_format = ENV['SCHEMA_FORMAT'] ? :sql : :ruby
34
+ config.active_record.schema_format = (ENV['SCHEMA_FORMAT'] || :ruby).to_sym
35
35
 
36
36
  if ENV['WITH_SECONDBASE_TASKS'].present?
37
37
  config.second_base.run_with_db_tasks = ENV['WITH_SECONDBASE_TASKS'] == 'true'
@@ -0,0 +1,262 @@
1
+ --- !ruby/object:ActiveRecord::ConnectionAdapters::SchemaCache
2
+ columns:
3
+ schema_migrations:
4
+ - &1 !ruby/object:ActiveRecord::ConnectionAdapters::Column
5
+ name: version
6
+ table_name: schema_migrations
7
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
8
+ sql_type: varchar
9
+ type: :string
10
+ limit:
11
+ precision:
12
+ scale:
13
+ 'null': false
14
+ default:
15
+ default_function:
16
+ collation:
17
+ comment:
18
+ ar_internal_metadata:
19
+ - &2 !ruby/object:ActiveRecord::ConnectionAdapters::Column
20
+ name: key
21
+ table_name: ar_internal_metadata
22
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
23
+ sql_type: varchar
24
+ type: :string
25
+ limit:
26
+ precision:
27
+ scale:
28
+ 'null': false
29
+ default:
30
+ default_function:
31
+ collation:
32
+ comment:
33
+ - &3 !ruby/object:ActiveRecord::ConnectionAdapters::Column
34
+ name: value
35
+ table_name: ar_internal_metadata
36
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
37
+ sql_type: varchar
38
+ type: :string
39
+ limit:
40
+ precision:
41
+ scale:
42
+ 'null': true
43
+ default:
44
+ default_function:
45
+ collation:
46
+ comment:
47
+ - &4 !ruby/object:ActiveRecord::ConnectionAdapters::Column
48
+ name: created_at
49
+ table_name: ar_internal_metadata
50
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
51
+ sql_type: datetime
52
+ type: :datetime
53
+ limit:
54
+ precision:
55
+ scale:
56
+ 'null': false
57
+ default:
58
+ default_function:
59
+ collation:
60
+ comment:
61
+ - &5 !ruby/object:ActiveRecord::ConnectionAdapters::Column
62
+ name: updated_at
63
+ table_name: ar_internal_metadata
64
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
65
+ sql_type: datetime
66
+ type: :datetime
67
+ limit:
68
+ precision:
69
+ scale:
70
+ 'null': false
71
+ default:
72
+ default_function:
73
+ collation:
74
+ comment:
75
+ users:
76
+ - &6 !ruby/object:ActiveRecord::ConnectionAdapters::Column
77
+ name: id
78
+ table_name: users
79
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
80
+ sql_type: INTEGER
81
+ type: :integer
82
+ limit:
83
+ precision:
84
+ scale:
85
+ 'null': false
86
+ default:
87
+ default_function:
88
+ collation:
89
+ comment:
90
+ - &7 !ruby/object:ActiveRecord::ConnectionAdapters::Column
91
+ name: name
92
+ table_name: users
93
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
94
+ sql_type: varchar
95
+ type: :string
96
+ limit:
97
+ precision:
98
+ scale:
99
+ 'null': true
100
+ default:
101
+ default_function:
102
+ collation:
103
+ comment:
104
+ - &8 !ruby/object:ActiveRecord::ConnectionAdapters::Column
105
+ name: email
106
+ table_name: users
107
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
108
+ sql_type: varchar
109
+ type: :string
110
+ limit:
111
+ precision:
112
+ scale:
113
+ 'null': true
114
+ default:
115
+ default_function:
116
+ collation:
117
+ comment:
118
+ - &9 !ruby/object:ActiveRecord::ConnectionAdapters::Column
119
+ name: created_at
120
+ table_name: users
121
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
122
+ sql_type: datetime
123
+ type: :datetime
124
+ limit:
125
+ precision:
126
+ scale:
127
+ 'null': false
128
+ default:
129
+ default_function:
130
+ collation:
131
+ comment:
132
+ - &10 !ruby/object:ActiveRecord::ConnectionAdapters::Column
133
+ name: updated_at
134
+ table_name: users
135
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
136
+ sql_type: datetime
137
+ type: :datetime
138
+ limit:
139
+ precision:
140
+ scale:
141
+ 'null': false
142
+ default:
143
+ default_function:
144
+ collation:
145
+ comment:
146
+ posts:
147
+ - &11 !ruby/object:ActiveRecord::ConnectionAdapters::Column
148
+ name: id
149
+ table_name: posts
150
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
151
+ sql_type: INTEGER
152
+ type: :integer
153
+ limit:
154
+ precision:
155
+ scale:
156
+ 'null': false
157
+ default:
158
+ default_function:
159
+ collation:
160
+ comment:
161
+ - &12 !ruby/object:ActiveRecord::ConnectionAdapters::Column
162
+ name: title
163
+ table_name: posts
164
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
165
+ sql_type: text
166
+ type: :text
167
+ limit:
168
+ precision:
169
+ scale:
170
+ 'null': true
171
+ default:
172
+ default_function:
173
+ collation:
174
+ comment:
175
+ - &13 !ruby/object:ActiveRecord::ConnectionAdapters::Column
176
+ name: body
177
+ table_name: posts
178
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
179
+ sql_type: text
180
+ type: :text
181
+ limit:
182
+ precision:
183
+ scale:
184
+ 'null': true
185
+ default:
186
+ default_function:
187
+ collation:
188
+ comment:
189
+ - &14 !ruby/object:ActiveRecord::ConnectionAdapters::Column
190
+ name: user_id
191
+ table_name: posts
192
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
193
+ sql_type: integer
194
+ type: :integer
195
+ limit:
196
+ precision:
197
+ scale:
198
+ 'null': true
199
+ default:
200
+ default_function:
201
+ collation:
202
+ comment:
203
+ - &15 !ruby/object:ActiveRecord::ConnectionAdapters::Column
204
+ name: created_at
205
+ table_name: posts
206
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
207
+ sql_type: datetime
208
+ type: :datetime
209
+ limit:
210
+ precision:
211
+ scale:
212
+ 'null': false
213
+ default:
214
+ default_function:
215
+ collation:
216
+ comment:
217
+ - &16 !ruby/object:ActiveRecord::ConnectionAdapters::Column
218
+ name: updated_at
219
+ table_name: posts
220
+ sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
221
+ sql_type: datetime
222
+ type: :datetime
223
+ limit:
224
+ precision:
225
+ scale:
226
+ 'null': false
227
+ default:
228
+ default_function:
229
+ collation:
230
+ comment:
231
+ columns_hash:
232
+ schema_migrations:
233
+ version: *1
234
+ ar_internal_metadata:
235
+ key: *2
236
+ value: *3
237
+ created_at: *4
238
+ updated_at: *5
239
+ users:
240
+ id: *6
241
+ name: *7
242
+ email: *8
243
+ created_at: *9
244
+ updated_at: *10
245
+ posts:
246
+ id: *11
247
+ title: *12
248
+ body: *13
249
+ user_id: *14
250
+ created_at: *15
251
+ updated_at: *16
252
+ primary_keys:
253
+ schema_migrations: version
254
+ ar_internal_metadata: key
255
+ users: id
256
+ posts: id
257
+ data_sources:
258
+ schema_migrations: true
259
+ ar_internal_metadata: true
260
+ users: true
261
+ posts: true
262
+ version: 20141214142700
@@ -0,0 +1,228 @@
1
+ --- !ruby/object:ActiveRecord::ConnectionAdapters::SchemaCache
2
+ columns:
3
+ ar_internal_metadata:
4
+ - &11 !ruby/object:ActiveRecord::ConnectionAdapters::MySQL::Column
5
+ name: key
6
+ table_name: ar_internal_metadata
7
+ sql_type_metadata: !ruby/marshalable:ActiveRecord::ConnectionAdapters::MySQL::TypeMetadata
8
+ :__v2__:
9
+ - :@type_metadata
10
+ - :@extra
11
+ ? - &1 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
12
+ sql_type: varchar(255)
13
+ type: :string
14
+ limit: 255
15
+ precision:
16
+ scale:
17
+ - ''
18
+ : *1
19
+ 'null': false
20
+ default:
21
+ default_function:
22
+ collation: utf8_general_ci
23
+ comment:
24
+ - &12 !ruby/object:ActiveRecord::ConnectionAdapters::MySQL::Column
25
+ name: value
26
+ table_name: ar_internal_metadata
27
+ sql_type_metadata: !ruby/marshalable:ActiveRecord::ConnectionAdapters::MySQL::TypeMetadata
28
+ :__v2__:
29
+ - :@type_metadata
30
+ - :@extra
31
+ ? - &2 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
32
+ sql_type: varchar(255)
33
+ type: :string
34
+ limit: 255
35
+ precision:
36
+ scale:
37
+ - ''
38
+ : *2
39
+ 'null': true
40
+ default:
41
+ default_function:
42
+ collation: utf8_general_ci
43
+ comment:
44
+ - &13 !ruby/object:ActiveRecord::ConnectionAdapters::MySQL::Column
45
+ name: created_at
46
+ table_name: ar_internal_metadata
47
+ sql_type_metadata: !ruby/marshalable:ActiveRecord::ConnectionAdapters::MySQL::TypeMetadata
48
+ :__v2__:
49
+ - :@type_metadata
50
+ - :@extra
51
+ ? - &3 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
52
+ sql_type: datetime
53
+ type: :datetime
54
+ limit:
55
+ precision: 0
56
+ scale:
57
+ - ''
58
+ : *3
59
+ 'null': false
60
+ default:
61
+ default_function:
62
+ collation:
63
+ comment:
64
+ - &14 !ruby/object:ActiveRecord::ConnectionAdapters::MySQL::Column
65
+ name: updated_at
66
+ table_name: ar_internal_metadata
67
+ sql_type_metadata: !ruby/marshalable:ActiveRecord::ConnectionAdapters::MySQL::TypeMetadata
68
+ :__v2__:
69
+ - :@type_metadata
70
+ - :@extra
71
+ ? - &4 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
72
+ sql_type: datetime
73
+ type: :datetime
74
+ limit:
75
+ precision: 0
76
+ scale:
77
+ - ''
78
+ : *4
79
+ 'null': false
80
+ default:
81
+ default_function:
82
+ collation:
83
+ comment:
84
+ comments:
85
+ - &15 !ruby/object:ActiveRecord::ConnectionAdapters::MySQL::Column
86
+ name: id
87
+ table_name: comments
88
+ sql_type_metadata: !ruby/marshalable:ActiveRecord::ConnectionAdapters::MySQL::TypeMetadata
89
+ :__v2__:
90
+ - :@type_metadata
91
+ - :@extra
92
+ ? - &5 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
93
+ sql_type: int(11)
94
+ type: :integer
95
+ limit: 4
96
+ precision:
97
+ scale:
98
+ - auto_increment
99
+ : *5
100
+ 'null': false
101
+ default:
102
+ default_function:
103
+ collation:
104
+ comment:
105
+ - &16 !ruby/object:ActiveRecord::ConnectionAdapters::MySQL::Column
106
+ name: body
107
+ table_name: comments
108
+ sql_type_metadata: !ruby/marshalable:ActiveRecord::ConnectionAdapters::MySQL::TypeMetadata
109
+ :__v2__:
110
+ - :@type_metadata
111
+ - :@extra
112
+ ? - &6 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
113
+ sql_type: text
114
+ type: :text
115
+ limit: 65535
116
+ precision:
117
+ scale:
118
+ - ''
119
+ : *6
120
+ 'null': true
121
+ default:
122
+ default_function:
123
+ collation: utf8_general_ci
124
+ comment:
125
+ - &17 !ruby/object:ActiveRecord::ConnectionAdapters::MySQL::Column
126
+ name: user_id
127
+ table_name: comments
128
+ sql_type_metadata: !ruby/marshalable:ActiveRecord::ConnectionAdapters::MySQL::TypeMetadata
129
+ :__v2__:
130
+ - :@type_metadata
131
+ - :@extra
132
+ ? - &7 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
133
+ sql_type: int(11)
134
+ type: :integer
135
+ limit: 4
136
+ precision:
137
+ scale:
138
+ - ''
139
+ : *7
140
+ 'null': true
141
+ default:
142
+ default_function:
143
+ collation:
144
+ comment:
145
+ - &18 !ruby/object:ActiveRecord::ConnectionAdapters::MySQL::Column
146
+ name: created_at
147
+ table_name: comments
148
+ sql_type_metadata: !ruby/marshalable:ActiveRecord::ConnectionAdapters::MySQL::TypeMetadata
149
+ :__v2__:
150
+ - :@type_metadata
151
+ - :@extra
152
+ ? - &8 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
153
+ sql_type: datetime
154
+ type: :datetime
155
+ limit:
156
+ precision: 0
157
+ scale:
158
+ - ''
159
+ : *8
160
+ 'null': false
161
+ default:
162
+ default_function:
163
+ collation:
164
+ comment:
165
+ - &19 !ruby/object:ActiveRecord::ConnectionAdapters::MySQL::Column
166
+ name: updated_at
167
+ table_name: comments
168
+ sql_type_metadata: !ruby/marshalable:ActiveRecord::ConnectionAdapters::MySQL::TypeMetadata
169
+ :__v2__:
170
+ - :@type_metadata
171
+ - :@extra
172
+ ? - &9 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
173
+ sql_type: datetime
174
+ type: :datetime
175
+ limit:
176
+ precision: 0
177
+ scale:
178
+ - ''
179
+ : *9
180
+ 'null': false
181
+ default:
182
+ default_function:
183
+ collation:
184
+ comment:
185
+ schema_migrations:
186
+ - &20 !ruby/object:ActiveRecord::ConnectionAdapters::MySQL::Column
187
+ name: version
188
+ table_name: schema_migrations
189
+ sql_type_metadata: !ruby/marshalable:ActiveRecord::ConnectionAdapters::MySQL::TypeMetadata
190
+ :__v2__:
191
+ - :@type_metadata
192
+ - :@extra
193
+ ? - &10 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata
194
+ sql_type: varchar(255)
195
+ type: :string
196
+ limit: 255
197
+ precision:
198
+ scale:
199
+ - ''
200
+ : *10
201
+ 'null': false
202
+ default:
203
+ default_function:
204
+ collation: utf8_general_ci
205
+ comment:
206
+ columns_hash:
207
+ ar_internal_metadata:
208
+ key: *11
209
+ value: *12
210
+ created_at: *13
211
+ updated_at: *14
212
+ comments:
213
+ id: *15
214
+ body: *16
215
+ user_id: *17
216
+ created_at: *18
217
+ updated_at: *19
218
+ schema_migrations:
219
+ version: *20
220
+ primary_keys:
221
+ ar_internal_metadata: key
222
+ comments: id
223
+ schema_migrations: version
224
+ data_sources:
225
+ ar_internal_metadata: true
226
+ comments: true
227
+ schema_migrations: true
228
+ version: 20151202075826
@@ -31,7 +31,7 @@ module Dummy
31
31
  # Keep pending test:prepare via pending migrations from running.
32
32
  config.active_record.maintain_test_schema = false if ActiveRecord::Base.respond_to?(:maintain_test_schema)
33
33
 
34
- config.active_record.schema_format = ENV['SCHEMA_FORMAT'] ? :sql : :ruby
34
+ config.active_record.schema_format = (ENV['SCHEMA_FORMAT'] || :ruby).to_sym
35
35
 
36
36
  if ENV['WITH_SECONDBASE_TASKS'].present?
37
37
  config.second_base.run_with_db_tasks = ENV['WITH_SECONDBASE_TASKS'] == 'true'
data/test/test_helper.rb CHANGED
@@ -9,7 +9,7 @@ require 'active_support/testing/autorun'
9
9
  if Rails.version.to_i == 4
10
10
  require 'dummy_apps/rails_four/init'
11
11
  else
12
- require 'dummy_apps/rails_five/init'
12
+ require 'dummy_apps/rails_five/config/init'
13
13
  end
14
14
 
15
15
  require 'rails/test_help'
@@ -11,7 +11,7 @@ module SecondBase
11
11
  Rails.version.to(2)
12
12
  end
13
13
 
14
- ['4.0', '4.1', '4.2', '5.0'].each do |v|
14
+ ['4.0', '4.1', '4.2', '5.0', '5.1'].each do |v|
15
15
 
16
16
  vm = v.sub '.', ''
17
17
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: secondbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karle Durante
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-04-03 00:00:00.000000000 Z
13
+ date: 2021-09-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -27,21 +27,21 @@ dependencies:
27
27
  - !ruby/object:Gem::Version
28
28
  version: '4.0'
29
29
  - !ruby/object:Gem::Dependency
30
- name: appraisal
30
+ name: rake
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ">="
33
+ - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: '0'
35
+ version: 11.3.0
36
36
  type: :development
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ">="
40
+ - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: '0'
42
+ version: 11.3.0
43
43
  - !ruby/object:Gem::Dependency
44
- name: pry
44
+ name: appraisal
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ">="
@@ -55,7 +55,7 @@ dependencies:
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  - !ruby/object:Gem::Dependency
58
- name: rake
58
+ name: pry
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ">="
@@ -72,16 +72,16 @@ dependencies:
72
72
  name: sqlite3
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - ">="
75
+ - - '='
76
76
  - !ruby/object:Gem::Version
77
- version: '0'
77
+ version: 1.3.13
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - ">="
82
+ - - '='
83
83
  - !ruby/object:Gem::Version
84
- version: '0'
84
+ version: 1.3.13
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: yard
87
87
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +107,8 @@ extensions: []
107
107
  extra_rdoc_files: []
108
108
  files:
109
109
  - ".gitignore"
110
+ - ".ruby-gemset"
111
+ - ".ruby-version"
110
112
  - ".travis.yml"
111
113
  - ".yardopts"
112
114
  - Appraisals
@@ -116,10 +118,8 @@ files:
116
118
  - README.md
117
119
  - Rakefile
118
120
  - VERSION
119
- - gemfiles/rails40.gemfile
120
- - gemfiles/rails41.gemfile
121
- - gemfiles/rails42.gemfile
122
121
  - gemfiles/rails50.gemfile
122
+ - gemfiles/rails51.gemfile
123
123
  - lib/rails/second_base/generators/migration_generator.rb
124
124
  - lib/second_base.rb
125
125
  - lib/second_base/base.rb
@@ -149,11 +149,13 @@ files:
149
149
  - test/dummy_apps/rails_five/app/models/user.rb
150
150
  - test/dummy_apps/rails_five/bin/rails
151
151
  - test/dummy_apps/rails_five/config/database.yml
152
+ - test/dummy_apps/rails_five/config/init.rb
152
153
  - test/dummy_apps/rails_five/config/routes.rb
153
154
  - test/dummy_apps/rails_five/db/migrate/20141209165002_create_users.rb
154
155
  - test/dummy_apps/rails_five/db/migrate/20141214142700_create_posts.rb
156
+ - test/dummy_apps/rails_five/db/schema_cache.yml
155
157
  - test/dummy_apps/rails_five/db/secondbase/migrate/20151202075826_create_comments.rb
156
- - test/dummy_apps/rails_five/init.rb
158
+ - test/dummy_apps/rails_five/db/secondbase/schema_cache.yml
157
159
  - test/dummy_apps/rails_five/log/.keep
158
160
  - test/dummy_apps/rails_five/tmp/.keep
159
161
  - test/dummy_apps/rails_four/Rakefile
@@ -196,8 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
198
  - !ruby/object:Gem::Version
197
199
  version: '0'
198
200
  requirements: []
199
- rubyforge_project:
200
- rubygems_version: 2.6.8
201
+ rubygems_version: 3.2.24
201
202
  signing_key:
202
203
  specification_version: 4
203
204
  summary: Seamless second database integration for Rails.
@@ -218,11 +219,13 @@ test_files:
218
219
  - test/dummy_apps/rails_five/app/models/user.rb
219
220
  - test/dummy_apps/rails_five/bin/rails
220
221
  - test/dummy_apps/rails_five/config/database.yml
222
+ - test/dummy_apps/rails_five/config/init.rb
221
223
  - test/dummy_apps/rails_five/config/routes.rb
222
224
  - test/dummy_apps/rails_five/db/migrate/20141209165002_create_users.rb
223
225
  - test/dummy_apps/rails_five/db/migrate/20141214142700_create_posts.rb
226
+ - test/dummy_apps/rails_five/db/schema_cache.yml
224
227
  - test/dummy_apps/rails_five/db/secondbase/migrate/20151202075826_create_comments.rb
225
- - test/dummy_apps/rails_five/init.rb
228
+ - test/dummy_apps/rails_five/db/secondbase/schema_cache.yml
226
229
  - test/dummy_apps/rails_five/log/.keep
227
230
  - test/dummy_apps/rails_five/tmp/.keep
228
231
  - test/dummy_apps/rails_four/Rakefile
@@ -245,4 +248,3 @@ test_files:
245
248
  - test/test_helpers/dummy_app_helpers.rb
246
249
  - test/test_helpers/rails_version_helpers.rb
247
250
  - test/test_helpers/stream_helpers.rb
248
- has_rdoc:
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails", "~> 4.1.0"
6
- gem "mysql"
7
-
8
- gemspec :path => "../"
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails", "~> 4.2.0"
6
- gem "mysql"
7
-
8
- gemspec :path => "../"