storey 1.0.0 → 2.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.
- checksums.yaml +5 -5
 - data/.ruby-version +1 -1
 - data/.travis.yml +11 -7
 - data/Appraisals +9 -4
 - data/CHANGELOG.md +26 -9
 - data/Gemfile +1 -2
 - data/README.md +13 -0
 - data/docker-compose.yml +10 -0
 - data/gemfiles/rails_5.0.gemfile +10 -0
 - data/gemfiles/rails_5.0.gemfile.lock +154 -0
 - data/gemfiles/rails_5.1.gemfile +9 -0
 - data/gemfiles/rails_5.1.gemfile.lock +153 -0
 - data/gemfiles/rails_5.2.gemfile +9 -0
 - data/gemfiles/rails_5.2.gemfile.lock +161 -0
 - data/lib/storey/builds_dump_command.rb +7 -1
 - data/lib/storey/duplicator.rb +2 -6
 - data/lib/storey/get_migration_versions.rb +21 -0
 - data/lib/storey/migrator.rb +29 -8
 - data/lib/storey/sql_dumper.rb +10 -6
 - data/lib/storey/suffixifier.rb +2 -2
 - data/lib/storey/version.rb +1 -1
 - data/lib/storey.rb +6 -7
 - data/spec/dummy/config/database.yml.sample +2 -1
 - data/spec/dummy/config/initializers/migrations_path.rb +2 -2
 - data/spec/dummy/db/migrate/20120115060713_create_companies.rb +1 -1
 - data/spec/dummy/db/migrate/20120115060728_create_posts.rb +1 -1
 - data/spec/migrator_spec.rb +15 -10
 - data/spec/storey/builds_dump_command_spec.rb +26 -0
 - data/spec/storey/create_spec.rb +2 -2
 - data/spec/storey/duplicate_spec.rb +2 -2
 - data/spec/storey/get_migration_versions_spec.rb +42 -0
 - data/spec/storey/schema_search_path_for_spec.rb +2 -2
 - data/spec/storey/schema_spec.rb +6 -0
 - data/spec/storey/schemas_spec.rb +15 -7
 - data/spec/storey/suffixifier_spec.rb +4 -4
 - data/spec/storey/switch_spec.rb +4 -2
 - data/spec/tasks/storey_rake_spec.rb +12 -12
 - data/storey.gemspec +2 -2
 - metadata +29 -23
 - data/gemfiles/rails_3.gemfile +0 -9
 - data/gemfiles/rails_3.gemfile.lock +0 -130
 - data/gemfiles/rails_4.gemfile +0 -9
 - data/gemfiles/rails_4.gemfile.lock +0 -144
 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Storey
         
     | 
| 
      
 2 
     | 
    
         
            +
              class GetMigrationVersions
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
                def self.call(schema = nil)
         
     | 
| 
      
 5 
     | 
    
         
            +
                  return migration_versions if schema.nil?
         
     | 
| 
      
 6 
     | 
    
         
            +
                  Storey.switch(schema) { migration_versions }
         
     | 
| 
      
 7 
     | 
    
         
            +
                end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                private
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                def self.migration_versions
         
     | 
| 
      
 12 
     | 
    
         
            +
                  if Gem::Version.new(ActiveRecord::VERSION::STRING) < Gem::Version.new("5.2")
         
     | 
| 
      
 13 
     | 
    
         
            +
                    ::ActiveRecord::Migrator.get_all_versions
         
     | 
| 
      
 14 
     | 
    
         
            +
                  else
         
     | 
| 
      
 15 
     | 
    
         
            +
                    ::ActiveRecord::Base.connection.migration_context.
         
     | 
| 
      
 16 
     | 
    
         
            +
                      get_all_versions
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/storey/migrator.rb
    CHANGED
    
    | 
         @@ -13,18 +13,13 @@ module Storey 
     | 
|
| 
       13 
13 
     | 
    
         
             
                def self.migrate(schema, options={})
         
     | 
| 
       14 
14 
     | 
    
         
             
                  Storey.switch schema do
         
     | 
| 
       15 
15 
     | 
    
         
             
                    puts "= Migrating #{schema}"
         
     | 
| 
       16 
     | 
    
         
            -
                     
     | 
| 
       17 
     | 
    
         
            -
                                                     options[:version])
         
     | 
| 
      
 16 
     | 
    
         
            +
                    active_record_migrate(options[:version])
         
     | 
| 
       18 
17 
     | 
    
         
             
                  end
         
     | 
| 
       19 
18 
     | 
    
         
             
                end
         
     | 
| 
       20 
19 
     | 
    
         | 
| 
       21 
20 
     | 
    
         
             
                def self.run(direction, schema, version)
         
     | 
| 
       22 
21 
     | 
    
         
             
                  Storey.switch schema do
         
     | 
| 
       23 
     | 
    
         
            -
                     
     | 
| 
       24 
     | 
    
         
            -
                      direction,
         
     | 
| 
       25 
     | 
    
         
            -
                      ::ActiveRecord::Migrator.migrations_path,
         
     | 
| 
       26 
     | 
    
         
            -
                      version
         
     | 
| 
       27 
     | 
    
         
            -
                    )
         
     | 
| 
      
 22 
     | 
    
         
            +
                    active_record_run(direction, version)
         
     | 
| 
       28 
23 
     | 
    
         
             
                  end
         
     | 
| 
       29 
24 
     | 
    
         
             
                end
         
     | 
| 
       30 
25 
     | 
    
         | 
| 
         @@ -39,11 +34,37 @@ module Storey 
     | 
|
| 
       39 
34 
     | 
    
         
             
                  Storey.switch schema do
         
     | 
| 
       40 
35 
     | 
    
         
             
                    puts "= Rolling back `#{schema}` #{step} steps"
         
     | 
| 
       41 
36 
     | 
    
         
             
                    ::ActiveRecord::Migrator.rollback(
         
     | 
| 
       42 
     | 
    
         
            -
                      ::ActiveRecord::Migrator. 
     | 
| 
      
 37 
     | 
    
         
            +
                      ::ActiveRecord::Migrator.migrations_paths,
         
     | 
| 
       43 
38 
     | 
    
         
             
                      step
         
     | 
| 
       44 
39 
     | 
    
         
             
                    )
         
     | 
| 
       45 
40 
     | 
    
         
             
                  end
         
     | 
| 
       46 
41 
     | 
    
         
             
                end
         
     | 
| 
       47 
42 
     | 
    
         | 
| 
      
 43 
     | 
    
         
            +
                private
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                def self.active_record_migrate(version)
         
     | 
| 
      
 46 
     | 
    
         
            +
                  if Gem::Version.new(ActiveRecord::VERSION::STRING) < Gem::Version.new("5.2")
         
     | 
| 
      
 47 
     | 
    
         
            +
                    ::ActiveRecord::Migrator.migrate(
         
     | 
| 
      
 48 
     | 
    
         
            +
                      ::ActiveRecord::Migrator.migrations_paths,
         
     | 
| 
      
 49 
     | 
    
         
            +
                      version,
         
     | 
| 
      
 50 
     | 
    
         
            +
                    )
         
     | 
| 
      
 51 
     | 
    
         
            +
                  else
         
     | 
| 
      
 52 
     | 
    
         
            +
                    ::ActiveRecord::Tasks::DatabaseTasks.migrate
         
     | 
| 
      
 53 
     | 
    
         
            +
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                def self.active_record_run(direction, target_version)
         
     | 
| 
      
 57 
     | 
    
         
            +
                  if Gem::Version.new(ActiveRecord::VERSION::STRING) < Gem::Version.new("5.2")
         
     | 
| 
      
 58 
     | 
    
         
            +
                    ::ActiveRecord::Migrator.run(
         
     | 
| 
      
 59 
     | 
    
         
            +
                      direction,
         
     | 
| 
      
 60 
     | 
    
         
            +
                      ::ActiveRecord::Migrator.migrations_paths,
         
     | 
| 
      
 61 
     | 
    
         
            +
                      target_version
         
     | 
| 
      
 62 
     | 
    
         
            +
                    )
         
     | 
| 
      
 63 
     | 
    
         
            +
                  else
         
     | 
| 
      
 64 
     | 
    
         
            +
                    ::ActiveRecord::Base.connection.migration_context.
         
     | 
| 
      
 65 
     | 
    
         
            +
                      run(direction, target_version)
         
     | 
| 
      
 66 
     | 
    
         
            +
                  end
         
     | 
| 
      
 67 
     | 
    
         
            +
                end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
       48 
69 
     | 
    
         
             
              end
         
     | 
| 
       49 
70 
     | 
    
         
             
            end
         
     | 
    
        data/lib/storey/sql_dumper.rb
    CHANGED
    
    | 
         @@ -8,8 +8,8 @@ module Storey 
     | 
|
| 
       8 
8 
     | 
    
         
             
                end
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                def dump
         
     | 
| 
       11 
     | 
    
         
            -
                   
     | 
| 
       12 
     | 
    
         
            -
                  raise  
     | 
| 
      
 11 
     | 
    
         
            +
                  stdout_str, stderr_str, status = Open3.capture3(command)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  raise "Error dumping database: #{stderr_str}" if status.exitstatus != 0
         
     | 
| 
       13 
13 
     | 
    
         
             
                end
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
                private
         
     | 
| 
         @@ -27,10 +27,14 @@ module Storey 
     | 
|
| 
       27 
27 
     | 
    
         
             
                end
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         
             
                def command
         
     | 
| 
       30 
     | 
    
         
            -
                  @command  
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
      
 30 
     | 
    
         
            +
                  return @command if defined?(@command)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  args = Storey.database_config.slice(:host, :username, :password).merge(
         
     | 
| 
      
 32 
     | 
    
         
            +
                    structure_only: true,
         
     | 
| 
      
 33 
     | 
    
         
            +
                    file: @file,
         
     | 
| 
      
 34 
     | 
    
         
            +
                    schemas: search_path,
         
     | 
| 
      
 35 
     | 
    
         
            +
                    database: database_name,
         
     | 
| 
      
 36 
     | 
    
         
            +
                  )
         
     | 
| 
      
 37 
     | 
    
         
            +
                  @command = BuildsDumpCommand.execute(args)
         
     | 
| 
       34 
38 
     | 
    
         
             
                end
         
     | 
| 
       35 
39 
     | 
    
         | 
| 
       36 
40 
     | 
    
         
             
              end
         
     | 
    
        data/lib/storey/suffixifier.rb
    CHANGED
    
    | 
         @@ -16,13 +16,13 @@ module Storey 
     | 
|
| 
       16 
16 
     | 
    
         
             
                    else
         
     | 
| 
       17 
17 
     | 
    
         
             
                      "#{schema_name}#{suffix}"
         
     | 
| 
       18 
18 
     | 
    
         
             
                    end
         
     | 
| 
       19 
     | 
    
         
            -
                  end.join(',')
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end.join(', ')
         
     | 
| 
       20 
20 
     | 
    
         
             
                end
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
                private
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                def schema_names
         
     | 
| 
       25 
     | 
    
         
            -
                  @schema_names ||= @schema_name.split(',')
         
     | 
| 
      
 25 
     | 
    
         
            +
                  @schema_names ||= @schema_name.split(',').map(&:strip)
         
     | 
| 
       26 
26 
     | 
    
         
             
                end
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
                def suffix
         
     | 
    
        data/lib/storey/version.rb
    CHANGED
    
    
    
        data/lib/storey.rb
    CHANGED
    
    | 
         @@ -1,5 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'easy_class_to_instance_method'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require "active_support/core_ext/module" # so we can use mattr_accessor
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "open3"
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
5 
     | 
    
         
             
            require "storey/version"
         
     | 
| 
       5 
6 
     | 
    
         
             
            require "rails/all"
         
     | 
| 
         @@ -20,6 +21,7 @@ require 'storey/builds_dump_command' 
     | 
|
| 
       20 
21 
     | 
    
         
             
            require 'storey/builds_load_command'
         
     | 
| 
       21 
22 
     | 
    
         
             
            require 'storey/schema_name'
         
     | 
| 
       22 
23 
     | 
    
         
             
            require 'storey/sets_env_password'
         
     | 
| 
      
 24 
     | 
    
         
            +
            require 'storey/get_migration_versions'
         
     | 
| 
       23 
25 
     | 
    
         | 
| 
       24 
26 
     | 
    
         
             
            module Storey
         
     | 
| 
       25 
27 
     | 
    
         | 
| 
         @@ -56,12 +58,9 @@ module Storey 
     | 
|
| 
       56 
58 
     | 
    
         
             
                options[:suffix] ||= false
         
     | 
| 
       57 
59 
     | 
    
         | 
| 
       58 
60 
     | 
    
         
             
                name = ::ActiveRecord::Base.connection.schema_search_path
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                if options[: 
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
                else
         
     | 
| 
       63 
     | 
    
         
            -
                  unsuffixify name
         
     | 
| 
       64 
     | 
    
         
            -
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
                name = unsuffixify(name) if !options[:suffix]
         
     | 
| 
      
 62 
     | 
    
         
            +
                return name.split(",").map(&:strip) if options[:array]
         
     | 
| 
      
 63 
     | 
    
         
            +
                name
         
     | 
| 
       65 
64 
     | 
    
         
             
              end
         
     | 
| 
       66 
65 
     | 
    
         | 
| 
       67 
66 
     | 
    
         
             
              def create(name, options={}, &block)
         
     | 
| 
         @@ -155,7 +154,7 @@ module Storey 
     | 
|
| 
       155 
154 
     | 
    
         | 
| 
       156 
155 
     | 
    
         
             
                schemas_in_db = self.schemas(suffix: self.suffix.present?)
         
     | 
| 
       157 
156 
     | 
    
         
             
                schemas_in_db << %("$user")
         
     | 
| 
       158 
     | 
    
         
            -
                schema_names = schema_name.split(',')
         
     | 
| 
      
 157 
     | 
    
         
            +
                schema_names = schema_name.split(',').map(&:strip)
         
     | 
| 
       159 
158 
     | 
    
         
             
                schemas_not_in_db = schema_names - schemas_in_db
         
     | 
| 
       160 
159 
     | 
    
         
             
                schemas_not_in_db.empty?
         
     | 
| 
       161 
160 
     | 
    
         
             
              end
         
     | 
| 
         @@ -1,2 +1,2 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
            ActiveRecord::Migrator. 
     | 
| 
      
 1 
     | 
    
         
            +
            dummy_migrations_paths = File.join(File.dirname(__FILE__), '..', '..', 'db', 'migrate')
         
     | 
| 
      
 2 
     | 
    
         
            +
            ActiveRecord::Migrator.migrations_paths = dummy_migrations_paths
         
     | 
    
        data/spec/migrator_spec.rb
    CHANGED
    
    | 
         @@ -2,7 +2,9 @@ require 'spec_helper' 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Storey::Migrator do
         
     | 
| 
       4 
4 
     | 
    
         
             
              before do
         
     | 
| 
       5 
     | 
    
         
            -
                 
     | 
| 
      
 5 
     | 
    
         
            +
                # split and join to make the expectation later consistent with the code
         
     | 
| 
      
 6 
     | 
    
         
            +
                @original_schema = ::ActiveRecord::Base.connection.schema_search_path.
         
     | 
| 
      
 7 
     | 
    
         
            +
                  split(",").map(&:strip).join(", ")
         
     | 
| 
       6 
8 
     | 
    
         
             
                @schema_1 = "first_schema"
         
     | 
| 
       7 
9 
     | 
    
         
             
                Storey.create @schema_1
         
     | 
| 
       8 
10 
     | 
    
         
             
              end
         
     | 
| 
         @@ -37,7 +39,6 @@ describe Storey::Migrator do 
     | 
|
| 
       37 
39 
     | 
    
         
             
                  end
         
     | 
| 
       38 
40 
     | 
    
         | 
| 
       39 
41 
     | 
    
         
             
                  it "should migrate db" do
         
     | 
| 
       40 
     | 
    
         
            -
                    ActiveRecord::Migrator.should_receive(:migrate)
         
     | 
| 
       41 
42 
     | 
    
         
             
                    Storey::Migrator.migrate(@schema_1)
         
     | 
| 
       42 
43 
     | 
    
         
             
                  end
         
     | 
| 
       43 
44 
     | 
    
         
             
                end
         
     | 
| 
         @@ -58,10 +59,12 @@ describe Storey::Migrator do 
     | 
|
| 
       58 
59 
     | 
    
         
             
                    Storey::Migrator.run(:up, @schema_1, @migration_version_2)
         
     | 
| 
       59 
60 
     | 
    
         
             
                  end
         
     | 
| 
       60 
61 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
                  it " 
     | 
| 
       62 
     | 
    
         
            -
                     
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
      
 62 
     | 
    
         
            +
                  it "migrates up a specific version" do
         
     | 
| 
      
 63 
     | 
    
         
            +
                    Storey.create("blankschema", load_database_structure: false)
         
     | 
| 
      
 64 
     | 
    
         
            +
                    Storey::Migrator.run(:up, "blankschema", @migration_version_1)
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                    expect(Storey::GetMigrationVersions.("blankschema")).
         
     | 
| 
      
 67 
     | 
    
         
            +
                      to match([@migration_version_1])
         
     | 
| 
       65 
68 
     | 
    
         
             
                  end
         
     | 
| 
       66 
69 
     | 
    
         
             
                end
         
     | 
| 
       67 
70 
     | 
    
         | 
| 
         @@ -74,10 +77,12 @@ describe Storey::Migrator do 
     | 
|
| 
       74 
77 
     | 
    
         
             
                    Storey::Migrator.run(:down, @schema_1, @migration_version_2)
         
     | 
| 
       75 
78 
     | 
    
         
             
                  end
         
     | 
| 
       76 
79 
     | 
    
         | 
| 
       77 
     | 
    
         
            -
                  it " 
     | 
| 
       78 
     | 
    
         
            -
                     
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
      
 80 
     | 
    
         
            +
                  it "migrates down a specific version" do
         
     | 
| 
      
 81 
     | 
    
         
            +
                    Storey.create("blankschema")
         
     | 
| 
      
 82 
     | 
    
         
            +
                    Storey::Migrator.run(:down, "blankschema", @migration_version_1)
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
                    expect(Storey::GetMigrationVersions.("blankschema")).
         
     | 
| 
      
 85 
     | 
    
         
            +
                      to match([@migration_version_2])
         
     | 
| 
       81 
86 
     | 
    
         
             
                  end
         
     | 
| 
       82 
87 
     | 
    
         
             
                end
         
     | 
| 
       83 
88 
     | 
    
         | 
| 
         @@ -16,6 +16,32 @@ describe Storey::BuildsDumpCommand do 
     | 
|
| 
       16 
16 
     | 
    
         
             
                  }
         
     | 
| 
       17 
17 
     | 
    
         
             
                end
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
      
 19 
     | 
    
         
            +
                context "when host is specified" do
         
     | 
| 
      
 20 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 21 
     | 
    
         
            +
                    options.merge!(host: "localhost")
         
     | 
| 
      
 22 
     | 
    
         
            +
                  end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  it { is_expected.to include("--host=localhost") }
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                context "when username is specified" do
         
     | 
| 
      
 28 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 29 
     | 
    
         
            +
                    options.merge!(username: "username")
         
     | 
| 
      
 30 
     | 
    
         
            +
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  it { is_expected.to include("--username=username") }
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                context "when password is specified" do
         
     | 
| 
      
 36 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 37 
     | 
    
         
            +
                    options.merge!(password: "pass")
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                  it "sets the PGPASSWORD env variable" do
         
     | 
| 
      
 41 
     | 
    
         
            +
                    expect(subject).to match(/^PGPASSWORD=pass/)
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
       19 
45 
     | 
    
         
             
                context 'when structure_only: true' do
         
     | 
| 
       20 
46 
     | 
    
         
             
                  before do
         
     | 
| 
       21 
47 
     | 
    
         
             
                    options.merge!(
         
     | 
    
        data/spec/storey/create_spec.rb
    CHANGED
    
    | 
         @@ -46,9 +46,9 @@ describe Storey, "#create" do 
     | 
|
| 
       46 
46 
     | 
    
         | 
| 
       47 
47 
     | 
    
         
             
              it "should copy the schema_migrations over" do
         
     | 
| 
       48 
48 
     | 
    
         
             
                Storey.create "foobar"
         
     | 
| 
       49 
     | 
    
         
            -
                public_schema_migrations = Storey.switch {  
     | 
| 
      
 49 
     | 
    
         
            +
                public_schema_migrations = Storey.switch { Storey::GetMigrationVersions.() }
         
     | 
| 
       50 
50 
     | 
    
         
             
                Storey.switch "foobar" do
         
     | 
| 
       51 
     | 
    
         
            -
                   
     | 
| 
      
 51 
     | 
    
         
            +
                  Storey::GetMigrationVersions.().should == public_schema_migrations
         
     | 
| 
       52 
52 
     | 
    
         
             
                end
         
     | 
| 
       53 
53 
     | 
    
         
             
              end
         
     | 
| 
       54 
54 
     | 
    
         | 
| 
         @@ -43,9 +43,9 @@ describe Storey, "#duplicate!" do 
     | 
|
| 
       43 
43 
     | 
    
         
             
                  end
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
45 
     | 
    
         
             
                  it 'should copy all the schema_migrations over' do
         
     | 
| 
       46 
     | 
    
         
            -
                    public_schema_migrations = Storey.switch {  
     | 
| 
      
 46 
     | 
    
         
            +
                    public_schema_migrations = Storey.switch { Storey::GetMigrationVersions.() }
         
     | 
| 
       47 
47 
     | 
    
         
             
                    Storey.switch 'bobby' do
         
     | 
| 
       48 
     | 
    
         
            -
                       
     | 
| 
      
 48 
     | 
    
         
            +
                      Storey::GetMigrationVersions.().should == public_schema_migrations
         
     | 
| 
       49 
49 
     | 
    
         
             
                    end
         
     | 
| 
       50 
50 
     | 
    
         
             
                  end
         
     | 
| 
       51 
51 
     | 
    
         
             
                end
         
     | 
| 
         @@ -0,0 +1,42 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Storey
         
     | 
| 
      
 4 
     | 
    
         
            +
              RSpec.describe GetMigrationVersions do
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                before do
         
     | 
| 
      
 7 
     | 
    
         
            +
                  Storey.create("schema_1") do
         
     | 
| 
      
 8 
     | 
    
         
            +
                    ActiveRecord::SchemaMigration.create!(version: 123)
         
     | 
| 
      
 9 
     | 
    
         
            +
                  end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  Storey.create("schema_2") do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    ActiveRecord::SchemaMigration.create!(version: 200)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    ActiveRecord::SchemaMigration.create!(version: 201)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  Storey.create("schema_3") do
         
     | 
| 
      
 17 
     | 
    
         
            +
                    ActiveRecord::SchemaMigration.create!(version: 300)
         
     | 
| 
      
 18 
     | 
    
         
            +
                    ActiveRecord::SchemaMigration.create!(version: 301)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    ActiveRecord::SchemaMigration.create!(version: 302)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                context "given a schema" do
         
     | 
| 
      
 24 
     | 
    
         
            +
                  it "returns the migration versions in that schema and switches back the schema" do
         
     | 
| 
      
 25 
     | 
    
         
            +
                    expect(described_class.("schema_1")).to include(123)
         
     | 
| 
      
 26 
     | 
    
         
            +
                    expect(Storey).to be_default_schema
         
     | 
| 
      
 27 
     | 
    
         
            +
                    expect(described_class.("schema_3")).to include(300, 301, 302)
         
     | 
| 
      
 28 
     | 
    
         
            +
                    expect(Storey).to be_default_schema
         
     | 
| 
      
 29 
     | 
    
         
            +
                  end
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                context "without a schema" do
         
     | 
| 
      
 33 
     | 
    
         
            +
                  it "returns the migration version in the current schema" do
         
     | 
| 
      
 34 
     | 
    
         
            +
                    Storey.switch "schema_1"
         
     | 
| 
      
 35 
     | 
    
         
            +
                    expect(described_class.()).to include(123)
         
     | 
| 
      
 36 
     | 
    
         
            +
                    Storey.switch "schema_2"
         
     | 
| 
      
 37 
     | 
    
         
            +
                    expect(described_class.()).to include(200, 201)
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
              end
         
     | 
| 
      
 42 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -4,9 +4,9 @@ describe Storey, '#schema_search_path_for' do 
     | 
|
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
              context 'given a search path that is one of the persistent schemas' do
         
     | 
| 
       6 
6 
     | 
    
         
             
                Storey.persistent_schemas = %w(halla)
         
     | 
| 
       7 
     | 
    
         
            -
                Storey.schema_search_path_for('bola,halla').should == 'bola,halla'
         
     | 
| 
      
 7 
     | 
    
         
            +
                Storey.schema_search_path_for('bola,halla').should == 'bola, halla'
         
     | 
| 
       8 
8 
     | 
    
         
             
                Storey.schema_search_path_for('halla').should == 'halla'
         
     | 
| 
       9 
     | 
    
         
            -
                Storey.schema_search_path_for('halla,bola').should == 'halla,bola'
         
     | 
| 
      
 9 
     | 
    
         
            +
                Storey.schema_search_path_for('halla,bola').should == 'halla, bola'
         
     | 
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
            end
         
     | 
    
        data/spec/storey/schema_spec.rb
    CHANGED
    
    | 
         @@ -5,6 +5,12 @@ describe Storey, "#schema" do 
     | 
|
| 
       5 
5 
     | 
    
         
             
                Storey.schema.should == %{"$user",public}
         
     | 
| 
       6 
6 
     | 
    
         
             
              end
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
      
 8 
     | 
    
         
            +
              context "array: true" do
         
     | 
| 
      
 9 
     | 
    
         
            +
                it "returns it as an array of strings" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  expect(Storey.schema(array: true)).to eq %w("$user" public)
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
       8 
14 
     | 
    
         
             
              context "when a suffix is set" do
         
     | 
| 
       9 
15 
     | 
    
         
             
                before do
         
     | 
| 
       10 
16 
     | 
    
         
             
                  Storey.suffix = "_rock"
         
     | 
    
        data/spec/storey/schemas_spec.rb
    CHANGED
    
    | 
         @@ -36,15 +36,23 @@ describe Storey, "#schemas" do 
     | 
|
| 
       36 
36 
     | 
    
         
             
                  end
         
     | 
| 
       37 
37 
     | 
    
         
             
                end
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
     | 
    
         
            -
                context " 
     | 
| 
       40 
     | 
    
         
            -
                   
     | 
| 
       41 
     | 
    
         
            -
                     
     | 
| 
      
 39 
     | 
    
         
            +
                context "`:public` option" do
         
     | 
| 
      
 40 
     | 
    
         
            +
                  context "when `public: true`" do
         
     | 
| 
      
 41 
     | 
    
         
            +
                    it "returns an array of the schemas including the public schema" do
         
     | 
| 
      
 42 
     | 
    
         
            +
                      expect(Storey.schemas(public: true)).to include("public")
         
     | 
| 
      
 43 
     | 
    
         
            +
                    end
         
     | 
| 
      
 44 
     | 
    
         
            +
                  end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  context "when `public: false`" do
         
     | 
| 
      
 47 
     | 
    
         
            +
                    it "returns an array of the schemas without the public schema" do
         
     | 
| 
      
 48 
     | 
    
         
            +
                      expect(Storey.schemas(public: false)).to_not include("public")
         
     | 
| 
      
 49 
     | 
    
         
            +
                    end
         
     | 
| 
       42 
50 
     | 
    
         
             
                  end
         
     | 
| 
       43 
     | 
    
         
            -
                end
         
     | 
| 
       44 
51 
     | 
    
         | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
      
 52 
     | 
    
         
            +
                  context "when `public` is not set" do
         
     | 
| 
      
 53 
     | 
    
         
            +
                    it "returns an array of the schemas including the public schema" do
         
     | 
| 
      
 54 
     | 
    
         
            +
                      expect(Storey.schemas).to include("public")
         
     | 
| 
      
 55 
     | 
    
         
            +
                    end
         
     | 
| 
       48 
56 
     | 
    
         
             
                  end
         
     | 
| 
       49 
57 
     | 
    
         
             
                end
         
     | 
| 
       50 
58 
     | 
    
         | 
| 
         @@ -3,7 +3,7 @@ require 'spec_helper' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            describe Storey::Suffixifier do
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
              describe '#suffixify' do
         
     | 
| 
       6 
     | 
    
         
            -
                subject do
         
     | 
| 
      
 6 
     | 
    
         
            +
                subject(:schemas) do
         
     | 
| 
       7 
7 
     | 
    
         
             
                  described_class.new(schema_name).suffixify
         
     | 
| 
       8 
8 
     | 
    
         
             
                end
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
         @@ -20,11 +20,11 @@ describe Storey::Suffixifier do 
     | 
|
| 
       20 
20 
     | 
    
         
             
                    it { should == 'boom_suff' }
         
     | 
| 
       21 
21 
     | 
    
         
             
                  end
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
                  context 'when given comma separated schemas' do
         
     | 
| 
       24 
     | 
    
         
            -
                    let(:schema_name) { '"$user",public,foo,bar,baz' }
         
     | 
| 
      
 23 
     | 
    
         
            +
                  context 'when given comma separated schemas (with inconsistent spaces)' do
         
     | 
| 
      
 24 
     | 
    
         
            +
                    let(:schema_name) { '"$user", public,foo, bar, baz' }
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
26 
     | 
    
         
             
                    it 'should return a comma separted schema string with the non-native schemas suffixified' do
         
     | 
| 
       27 
     | 
    
         
            -
                      subject.should == '"$user",public,foo_suff,bar_suff,baz_suff'
         
     | 
| 
      
 27 
     | 
    
         
            +
                      subject.should == '"$user", public, foo_suff, bar_suff, baz_suff'
         
     | 
| 
       28 
28 
     | 
    
         
             
                    end
         
     | 
| 
       29 
29 
     | 
    
         
             
                  end
         
     | 
| 
       30 
30 
     | 
    
         
             
                end
         
     | 
    
        data/spec/storey/switch_spec.rb
    CHANGED
    
    | 
         @@ -136,10 +136,12 @@ describe Storey, "#switch" do 
     | 
|
| 
       136 
136 
     | 
    
         | 
| 
       137 
137 
     | 
    
         
             
                  it 'should switch to the schema with the persitent schemas still in the search path' do
         
     | 
| 
       138 
138 
     | 
    
         
             
                    Storey.switch 'foobar'
         
     | 
| 
       139 
     | 
    
         
            -
                    Storey.schema. 
     | 
| 
      
 139 
     | 
    
         
            +
                    expect(Storey.schema(array: true)).
         
     | 
| 
      
 140 
     | 
    
         
            +
                      to match_array %w(foobar handle bar foo)
         
     | 
| 
       140 
141 
     | 
    
         | 
| 
       141 
142 
     | 
    
         
             
                    Storey.switch
         
     | 
| 
       142 
     | 
    
         
            -
                    Storey.schema. 
     | 
| 
      
 143 
     | 
    
         
            +
                    expect(Storey.schema(array: true)).
         
     | 
| 
      
 144 
     | 
    
         
            +
                      to match_array %w("$user" public handle bar foo)
         
     | 
| 
       143 
145 
     | 
    
         
             
                  end
         
     | 
| 
       144 
146 
     | 
    
         
             
                end
         
     | 
| 
       145 
147 
     | 
    
         | 
| 
         @@ -6,8 +6,8 @@ describe Storey, "rake tasks" do 
     | 
|
| 
       6 
6 
     | 
    
         
             
                @migration_version_1 = 20120115060713
         
     | 
| 
       7 
7 
     | 
    
         
             
                @migration_version_2 = 20120115060728
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
                @ 
     | 
| 
       10 
     | 
    
         
            -
                @ 
     | 
| 
      
 9 
     | 
    
         
            +
                @number_of_schemas = rand(3) + 1
         
     | 
| 
      
 10 
     | 
    
         
            +
                @number_of_schemas.times do |db|
         
     | 
| 
       11 
11 
     | 
    
         
             
                  Storey.create "schema_#{db}"
         
     | 
| 
       12 
12 
     | 
    
         
             
                end
         
     | 
| 
       13 
13 
     | 
    
         
             
              end
         
     | 
| 
         @@ -15,21 +15,21 @@ describe Storey, "rake tasks" do 
     | 
|
| 
       15 
15 
     | 
    
         
             
              describe "storey:migrate" do
         
     | 
| 
       16 
16 
     | 
    
         
             
                before do
         
     | 
| 
       17 
17 
     | 
    
         
             
                  # We don't care how it's migrated
         
     | 
| 
       18 
     | 
    
         
            -
                   
     | 
| 
      
 18 
     | 
    
         
            +
                  Storey::Migrator.migrate_all
         
     | 
| 
       19 
19 
     | 
    
         
             
                end
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                it "should migrate all schemas including public" do
         
     | 
| 
       22 
22 
     | 
    
         
             
                  # +1 to take into account the public schema
         
     | 
| 
       23 
     | 
    
         
            -
                   
     | 
| 
      
 23 
     | 
    
         
            +
                  Storey::Migrator.should_receive(:migrate).exactly(@number_of_schemas + 1).times
         
     | 
| 
       24 
24 
     | 
    
         
             
                  @rake["storey:migrate"].invoke
         
     | 
| 
       25 
25 
     | 
    
         
             
                end
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
                context 'when a version is given' do
         
     | 
| 
       28 
     | 
    
         
            -
                  it ' 
     | 
| 
      
 28 
     | 
    
         
            +
                  it 'migrates to the given version for each schema' do
         
     | 
| 
       29 
29 
     | 
    
         
             
                    ENV['VERSION'] = '3299329'
         
     | 
| 
       30 
     | 
    
         
            -
                     
     | 
| 
       31 
     | 
    
         
            -
                      with( 
     | 
| 
       32 
     | 
    
         
            -
                       
     | 
| 
      
 30 
     | 
    
         
            +
                    expect(Storey::Migrator).to receive(:migrate_all).
         
     | 
| 
      
 31 
     | 
    
         
            +
                      with(version: "3299329").
         
     | 
| 
      
 32 
     | 
    
         
            +
                      once
         
     | 
| 
       33 
33 
     | 
    
         
             
                    @rake["storey:migrate"].invoke
         
     | 
| 
       34 
34 
     | 
    
         
             
                  end
         
     | 
| 
       35 
35 
     | 
    
         
             
                end
         
     | 
| 
         @@ -57,7 +57,7 @@ describe Storey, "rake tasks" do 
     | 
|
| 
       57 
57 
     | 
    
         
             
                      :up,
         
     | 
| 
       58 
58 
     | 
    
         
             
                      anything,
         
     | 
| 
       59 
59 
     | 
    
         
             
                      @migration_version_2.to_i
         
     | 
| 
       60 
     | 
    
         
            -
                    ).exactly(@ 
     | 
| 
      
 60 
     | 
    
         
            +
                    ).exactly(@number_of_schemas+1).times
         
     | 
| 
       61 
61 
     | 
    
         | 
| 
       62 
62 
     | 
    
         
             
                    @rake['storey:migrate:up'].invoke
         
     | 
| 
       63 
63 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -86,7 +86,7 @@ describe Storey, "rake tasks" do 
     | 
|
| 
       86 
86 
     | 
    
         
             
                      :down,
         
     | 
| 
       87 
87 
     | 
    
         
             
                      anything,
         
     | 
| 
       88 
88 
     | 
    
         
             
                      @migration_version_1
         
     | 
| 
       89 
     | 
    
         
            -
                    ).exactly(@ 
     | 
| 
      
 89 
     | 
    
         
            +
                    ).exactly(@number_of_schemas+1).times
         
     | 
| 
       90 
90 
     | 
    
         | 
| 
       91 
91 
     | 
    
         
             
                    @rake['storey:migrate:down'].invoke
         
     | 
| 
       92 
92 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -94,12 +94,12 @@ describe Storey, "rake tasks" do 
     | 
|
| 
       94 
94 
     | 
    
         
             
              end
         
     | 
| 
       95 
95 
     | 
    
         | 
| 
       96 
96 
     | 
    
         
             
              describe "storey:rollback" do
         
     | 
| 
       97 
     | 
    
         
            -
                it "should rollback  
     | 
| 
      
 97 
     | 
    
         
            +
                it "should rollback schemas" do
         
     | 
| 
       98 
98 
     | 
    
         
             
                  Storey::Migrator.should_receive(:rollback_all).once
         
     | 
| 
       99 
99 
     | 
    
         
             
                  @rake['storey:rollback'].invoke
         
     | 
| 
       100 
100 
     | 
    
         
             
                end
         
     | 
| 
       101 
101 
     | 
    
         | 
| 
       102 
     | 
    
         
            -
                it "should rollback  
     | 
| 
      
 102 
     | 
    
         
            +
                it "should rollback schemas STEP amt" do
         
     | 
| 
       103 
103 
     | 
    
         
             
                  step = 2
         
     | 
| 
       104 
104 
     | 
    
         
             
                  Storey::Migrator.should_receive(:rollback_all).with(step).once
         
     | 
| 
       105 
105 
     | 
    
         
             
                  ENV['STEP'] = step.to_s
         
     | 
    
        data/storey.gemspec
    CHANGED
    
    | 
         @@ -21,8 +21,8 @@ Gem::Specification.new do |s| 
     | 
|
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
              # specify any dependencies here; for example:
         
     | 
| 
       23 
23 
     | 
    
         
             
              s.add_development_dependency "rspec-rails"
         
     | 
| 
       24 
     | 
    
         
            -
              s.add_development_dependency "pg", "~> 0.12"
         
     | 
| 
       25 
24 
     | 
    
         
             
              s.add_development_dependency "database_cleaner"
         
     | 
| 
       26 
25 
     | 
    
         
             
              s.add_runtime_dependency 'easy_class_to_instance_method', '~> 0.0.2'
         
     | 
| 
       27 
     | 
    
         
            -
              s.add_runtime_dependency "rails", ">=  
     | 
| 
      
 26 
     | 
    
         
            +
              s.add_runtime_dependency "rails", ">= 4.0.0"
         
     | 
| 
      
 27 
     | 
    
         
            +
              s.add_runtime_dependency "pg"
         
     | 
| 
       28 
28 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: storey
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version:  
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.0.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ramon Tayag
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2018-06-26 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rspec-rails
         
     | 
| 
         @@ -24,20 +24,6 @@ dependencies: 
     | 
|
| 
       24 
24 
     | 
    
         
             
                - - ">="
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
26 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       27 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
     | 
    
         
            -
              name: pg
         
     | 
| 
       29 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
     | 
    
         
            -
                requirements:
         
     | 
| 
       31 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       32 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       33 
     | 
    
         
            -
                    version: '0.12'
         
     | 
| 
       34 
     | 
    
         
            -
              type: :development
         
     | 
| 
       35 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       36 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       37 
     | 
    
         
            -
                requirements:
         
     | 
| 
       38 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       39 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
     | 
    
         
            -
                    version: '0.12'
         
     | 
| 
       41 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
28 
     | 
    
         
             
              name: database_cleaner
         
     | 
| 
       43 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -72,14 +58,28 @@ dependencies: 
     | 
|
| 
       72 
58 
     | 
    
         
             
                requirements:
         
     | 
| 
       73 
59 
     | 
    
         
             
                - - ">="
         
     | 
| 
       74 
60 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       75 
     | 
    
         
            -
                    version:  
     | 
| 
      
 61 
     | 
    
         
            +
                    version: 4.0.0
         
     | 
| 
      
 62 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 63 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 64 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 65 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 66 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 67 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 68 
     | 
    
         
            +
                    version: 4.0.0
         
     | 
| 
      
 69 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 70 
     | 
    
         
            +
              name: pg
         
     | 
| 
      
 71 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 72 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 73 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 74 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 75 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       76 
76 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       77 
77 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       78 
78 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       79 
79 
     | 
    
         
             
                requirements:
         
     | 
| 
       80 
80 
     | 
    
         
             
                - - ">="
         
     | 
| 
       81 
81 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       82 
     | 
    
         
            -
                    version:  
     | 
| 
      
 82 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       83 
83 
     | 
    
         
             
            description: Storey aims to simplify the implementation of managing a multi-tenant
         
     | 
| 
       84 
84 
     | 
    
         
             
              application.
         
     | 
| 
       85 
85 
     | 
    
         
             
            email:
         
     | 
| 
         @@ -98,16 +98,20 @@ files: 
     | 
|
| 
       98 
98 
     | 
    
         
             
            - LICENSE.txt
         
     | 
| 
       99 
99 
     | 
    
         
             
            - README.md
         
     | 
| 
       100 
100 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       101 
     | 
    
         
            -
            -  
     | 
| 
       102 
     | 
    
         
            -
            - gemfiles/ 
     | 
| 
       103 
     | 
    
         
            -
            - gemfiles/ 
     | 
| 
       104 
     | 
    
         
            -
            - gemfiles/ 
     | 
| 
      
 101 
     | 
    
         
            +
            - docker-compose.yml
         
     | 
| 
      
 102 
     | 
    
         
            +
            - gemfiles/rails_5.0.gemfile
         
     | 
| 
      
 103 
     | 
    
         
            +
            - gemfiles/rails_5.0.gemfile.lock
         
     | 
| 
      
 104 
     | 
    
         
            +
            - gemfiles/rails_5.1.gemfile
         
     | 
| 
      
 105 
     | 
    
         
            +
            - gemfiles/rails_5.1.gemfile.lock
         
     | 
| 
      
 106 
     | 
    
         
            +
            - gemfiles/rails_5.2.gemfile
         
     | 
| 
      
 107 
     | 
    
         
            +
            - gemfiles/rails_5.2.gemfile.lock
         
     | 
| 
       105 
108 
     | 
    
         
             
            - lib/storey.rb
         
     | 
| 
       106 
109 
     | 
    
         
             
            - lib/storey/builds_dump_command.rb
         
     | 
| 
       107 
110 
     | 
    
         
             
            - lib/storey/builds_load_command.rb
         
     | 
| 
       108 
111 
     | 
    
         
             
            - lib/storey/dumper.rb
         
     | 
| 
       109 
112 
     | 
    
         
             
            - lib/storey/duplicator.rb
         
     | 
| 
       110 
113 
     | 
    
         
             
            - lib/storey/exceptions.rb
         
     | 
| 
      
 114 
     | 
    
         
            +
            - lib/storey/get_migration_versions.rb
         
     | 
| 
       111 
115 
     | 
    
         
             
            - lib/storey/hstore.rb
         
     | 
| 
       112 
116 
     | 
    
         
             
            - lib/storey/migrator.rb
         
     | 
| 
       113 
117 
     | 
    
         
             
            - lib/storey/native_schema_matcher.rb
         
     | 
| 
         @@ -175,6 +179,7 @@ files: 
     | 
|
| 
       175 
179 
     | 
    
         
             
            - spec/storey/duplicate_spec.rb
         
     | 
| 
       176 
180 
     | 
    
         
             
            - spec/storey/duplicator_spec.rb
         
     | 
| 
       177 
181 
     | 
    
         
             
            - spec/storey/excluded_models_spec.rb
         
     | 
| 
      
 182 
     | 
    
         
            +
            - spec/storey/get_migration_versions_spec.rb
         
     | 
| 
       178 
183 
     | 
    
         
             
            - spec/storey/hstore_spec.rb
         
     | 
| 
       179 
184 
     | 
    
         
             
            - spec/storey/native_schema_matcher_spec.rb
         
     | 
| 
       180 
185 
     | 
    
         
             
            - spec/storey/persistent_schemas_spec.rb
         
     | 
| 
         @@ -212,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       212 
217 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       213 
218 
     | 
    
         
             
            requirements: []
         
     | 
| 
       214 
219 
     | 
    
         
             
            rubyforge_project: storey
         
     | 
| 
       215 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 220 
     | 
    
         
            +
            rubygems_version: 2.7.3
         
     | 
| 
       216 
221 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       217 
222 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       218 
223 
     | 
    
         
             
            summary: Manage multiple PostgreSQL schemas in your multi-tenant app.
         
     | 
| 
         @@ -270,6 +275,7 @@ test_files: 
     | 
|
| 
       270 
275 
     | 
    
         
             
            - spec/storey/duplicate_spec.rb
         
     | 
| 
       271 
276 
     | 
    
         
             
            - spec/storey/duplicator_spec.rb
         
     | 
| 
       272 
277 
     | 
    
         
             
            - spec/storey/excluded_models_spec.rb
         
     | 
| 
      
 278 
     | 
    
         
            +
            - spec/storey/get_migration_versions_spec.rb
         
     | 
| 
       273 
279 
     | 
    
         
             
            - spec/storey/hstore_spec.rb
         
     | 
| 
       274 
280 
     | 
    
         
             
            - spec/storey/native_schema_matcher_spec.rb
         
     | 
| 
       275 
281 
     | 
    
         
             
            - spec/storey/persistent_schemas_spec.rb
         
     |