departure 6.1.0 → 6.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: 0ec14bb84716b3492846b14acd70c19f2e242748
4
- data.tar.gz: 138eb9af8dc4c07d4fc5d7f77203f2cb927b7f5d
2
+ SHA256:
3
+ metadata.gz: 7379ce58f2dd5726c2844bb8ad94f24f427d5567bf4b96d6252faba6ac9371c3
4
+ data.tar.gz: 607e8a0fb255e7630e2379f7c3f7907723bad228742905fbefc38a053a22f2f5
5
5
  SHA512:
6
- metadata.gz: 3ea0b39fa2cb8ca1766ad374f6a1dc33a3214e742930afc94974faade91468e561ef0b21beac179f6209124559264de9b0dfff1b3014378ebcf87c98e60902b4
7
- data.tar.gz: 83b78984ff0ace2b88f0b4fddbe6ccc37daa4f34f49b30f327c9041d5babb82b2d2d4a3d98dd4494f3eb94e8d39590229bd974db9bb1420ca58356c69d803132
6
+ metadata.gz: a16e8fa492148d38370dc86bfc2cc3c46696ba7369c0f07bfe6981c01cdfa93e37286a7394507abbb4cb7e7ed2eed7adb6aa43ea92b193c15743d0469cc09e45
7
+ data.tar.gz: c01c6cc976f7893c99e3257a3de7075afc004878dc2d04cff15bfd0d344f177669de2be808a67527c39c9ede79b5c8978e85ca797bfecc3258f302f474859995
@@ -48,7 +48,7 @@ Style/MultilineBlockChain:
48
48
  Exclude:
49
49
  - 'spec/integration_spec.rb'
50
50
 
51
- Style/MultilineMethodCallIndentation:
51
+ Layout/MultilineMethodCallIndentation:
52
52
  Enabled: false
53
53
 
54
54
  Style/SymbolArray:
@@ -1,8 +1,24 @@
1
1
  language: ruby
2
+
2
3
  rvm:
3
- - 2.2.8
4
+ - 2.5.5
5
+ - 2.6.3
6
+ - 2.7.0
7
+
8
+ env:
9
+ - RAILS_VERSION="~> 6.0.0"
10
+ - RAILS_VERSION="~> 5.2.0"
11
+
12
+ jobs:
13
+ include:
14
+ - rvm: 2.4.6
15
+ env: RAILS_VERSION="~> 5.2.0"
16
+
17
+ services:
18
+ - mysql
19
+
4
20
  before_install:
5
- - sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 8507EFA5
21
+ - travis_retry sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 8507EFA5
6
22
  - echo "deb http://repo.percona.com/apt `lsb_release -cs` main" | sudo tee -a /etc/apt/sources.list
7
23
  - sudo apt-get update -qq
8
24
  - sudo apt-get install percona-toolkit
@@ -6,6 +6,24 @@ Please follow the format in [Keep a Changelog](http://keepachangelog.com/)
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ### Added
10
+
11
+ - Support for ActiveRecord 5.2
12
+ - Support to batch multiple changes at once with #change_table
13
+ - Support for connection to MySQL server over SSL
14
+
15
+ ### Changed
16
+
17
+ - Depend only in railties and activerecord instead of rails gem
18
+
19
+ ### Deprecated
20
+ ### Removed
21
+ ### Fixed
22
+
23
+ - Fix support for removing foreign keys
24
+
25
+ ## [6.1.0] - 2018-02-27
26
+
9
27
  ### Added
10
28
  ### Changed
11
29
 
data/README.md CHANGED
@@ -99,7 +99,7 @@ $ PERCONA_ARGS='--chunk-time=1' bundle exec rake db:migrate:up VERSION=xxx
99
99
  or even mulitple arguments
100
100
 
101
101
  ```ruby
102
- $ PERCONA_ARGS='--chunk-time=1 --critical-load=55' bundle exec rake db:migrate:up VERSION=xxx
102
+ $ PERCONA_ARGS='--chunk-time=1 --critical-load Threads_running=55' bundle exec rake db:migrate:up VERSION=xxx
103
103
  ```
104
104
 
105
105
  Use caution when using PERCONA_ARGS with `db:migrate`, as your args will be applied
@@ -112,7 +112,7 @@ using `global_percona_args` option.
112
112
 
113
113
  ```ruby
114
114
  Departure.configure do |config|
115
- config.global_percona_args = '--chunk-time=1 --critical-load=55'
115
+ config.global_percona_args = '--chunk-time=1 --critical-load Threads_running=55'
116
116
  end
117
117
  ```
118
118
 
@@ -154,19 +154,19 @@ it using the `DepartureAdapter` instead of the one you defined in your
154
154
 
155
155
  Then, when any migration DSL methods such as `add_column` or `create_table` are
156
156
  executed, they all go to the
157
- [DepartureAdapter](https://github.com/redbooth/departure/blob/master/lib/active_record/connection_adapters/departure_adapter.rb).
157
+ [DepartureAdapter](https://github.com/departurerb/departure/blob/master/lib/active_record/connection_adapters/departure_adapter.rb).
158
158
  There, the methods that require `ALTER TABLE` SQL statements, like `add_column`,
159
159
  are overriden to get executed with
160
- [Departure::Runner](https://github.com/redbooth/departure/blob/master/lib/departure/runner.rb),
160
+ [Departure::Runner](https://github.com/departurerb/departure/blob/master/lib/departure/runner.rb),
161
161
  which deals with the `pt-online-schema-change` binary. All the others, like
162
162
  `create_table`, are delegated to the ActiveRecord's built in Mysql2Adapter and
163
163
  so they follow the regular path.
164
164
 
165
- [Departure::Runner](https://github.com/redbooth/departure/blob/master/lib/departure/runner.rb)
165
+ [Departure::Runner](https://github.com/departurerb/departure/blob/master/lib/departure/runner.rb)
166
166
  spawns a new process that runs the `pt-online-schema-change` binary present in
167
- the system, with the apropriate arguments for the generated SQL.
167
+ the system, with the appropriate arguments for the generated SQL.
168
168
 
169
- When an any error occurs, an `ActiveRecord::StatementInvalid` exception is
169
+ When any errors occur, an `ActiveRecord::StatementInvalid` exception is
170
170
  raised and the migration is aborted, as all other ActiveRecord connection
171
171
  adapters.
172
172
 
@@ -191,7 +191,7 @@ git commits and tags, and push the `.gem` file to
191
191
  ## Contributing
192
192
 
193
193
  Bug reports and pull requests are welcome on GitHub at
194
- https://github.com/redbooth/departure. They need to be opened against
194
+ https://github.com/departurerb/departure. They need to be opened against
195
195
  `master` or `v3.2` only if the changes fix a bug in Rails 3.2 apps.
196
196
 
197
197
  Please note that this project is released with a Contributor Code of Conduct. By
@@ -1,4 +1,4 @@
1
- # Releasing Percona Migrator
1
+ # Releasing Departure
2
2
 
3
3
  All releases come from the master branch. All other branches won't be maintained
4
4
  and will receive bug fix releases only.
@@ -5,11 +5,15 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
 
6
6
  require 'departure/version'
7
7
 
8
+ # This environment variable is set on CI to facilitate testing with multiple
9
+ # versions of Rails.
10
+ RAILS_DEPENDENCY_VERSION = ENV.fetch('RAILS_VERSION', ['>= 5.2.0', '< 6.1'])
11
+
8
12
  Gem::Specification.new do |spec|
9
13
  spec.name = 'departure'
10
14
  spec.version = Departure::VERSION
11
- spec.authors = ['Ilya Zayats', 'Pau Pérez', 'Fran Casas', 'Jorge Morante', 'Enrico Stano', 'Adrian Serafin', 'Kirk Haines']
12
- spec.email = ['ilya.zayats@redbooth.com', 'pau.perez@redbooth.com', 'fran.casas@redbooth.com', 'jorge.morante@redbooth.com', 'adrian@softmad.pl', 'wyhaines@gmail.com']
15
+ spec.authors = ['Ilya Zayats', 'Pau Pérez', 'Fran Casas', 'Jorge Morante', 'Enrico Stano', 'Adrian Serafin', 'Kirk Haines', 'Guillermo Iguaran']
16
+ spec.email = ['ilya.zayats@redbooth.com', 'pau.perez@redbooth.com', 'nflamel@gmail.com', 'jorge.morante@redbooth.com', 'adrian@softmad.pl', 'wyhaines@gmail.com', 'guilleiguaran@gmail.com']
13
17
 
14
18
  spec.summary = %q(pt-online-schema-change runner for ActiveRecord migrations)
15
19
  spec.description = %q(Execute your ActiveRecord migrations with Percona's pt-online-schema-change. Formerly known as Percona Migrator.)
@@ -19,8 +23,9 @@ Gem::Specification.new do |spec|
19
23
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
24
  spec.require_paths = ['lib']
21
25
 
22
- spec.add_runtime_dependency 'rails', '~> 5.1.0'
23
- spec.add_runtime_dependency 'mysql2', '~> 0.4.0'
26
+ spec.add_runtime_dependency 'railties', *Array(RAILS_DEPENDENCY_VERSION)
27
+ spec.add_runtime_dependency 'activerecord', *Array(RAILS_DEPENDENCY_VERSION)
28
+ spec.add_runtime_dependency 'mysql2', '>= 0.4.0', '<= 0.5.3'
24
29
 
25
30
  spec.add_development_dependency 'rake', '~> 10.0'
26
31
  spec.add_development_dependency 'rspec', '~> 3.4', '>= 3.4.0'
@@ -0,0 +1,91 @@
1
+ require 'active_record/connection_adapters/mysql/schema_statements'
2
+
3
+ module ForAlterStatements
4
+ class << self
5
+ def included(_)
6
+ STDERR.puts 'Including for_alter statements'
7
+ end
8
+ end
9
+
10
+ def bulk_change_table(table_name, operations) #:nodoc:
11
+ sqls = operations.flat_map do |command, args|
12
+ table = args.shift
13
+ arguments = args
14
+
15
+ method = :"#{command}_for_alter"
16
+
17
+ raise "Unknown method called : #{method}(#{arguments.inspect})" unless respond_to?(method, true)
18
+ public_send(method, table, *arguments)
19
+ end.join(', ')
20
+
21
+ execute("ALTER TABLE #{quote_table_name(table_name)} #{sqls}")
22
+ end
23
+
24
+ def change_column_for_alter(table_name, column_name, type, options = {})
25
+ column = column_for(table_name, column_name)
26
+ type ||= column.sql_type
27
+
28
+ options = {
29
+ default: column.default,
30
+ null: column.null,
31
+ comment: column.comment
32
+ }.merge(options)
33
+
34
+ td = create_table_definition(table_name)
35
+ cd = td.new_column_definition(column.name, type, options)
36
+ schema_creation.accept(ActiveRecord::ConnectionAdapters::ChangeColumnDefinition.new(cd, column.name))
37
+ end
38
+
39
+ def rename_column_for_alter(table_name, column_name, new_column_name)
40
+ column = column_for(table_name, column_name)
41
+ options = {
42
+ default: column.default,
43
+ null: column.null,
44
+ auto_increment: column.auto_increment?
45
+ }
46
+
47
+ columns_sql = "SHOW COLUMNS FROM #{quote_table_name(table_name)} LIKE #{quote(column_name)}"
48
+ current_type = exec_query(columns_sql, 'SCHEMA').first['Type']
49
+ td = create_table_definition(table_name)
50
+ cd = td.new_column_definition(new_column_name, current_type, options)
51
+ schema_creation.accept(ActiveRecord::ConnectionAdapters::ChangeColumnDefinition.new(cd, column.name))
52
+ end
53
+
54
+ def add_index_for_alter(table_name, column_name, options = {})
55
+ index_name, index_type, index_columns, _,
56
+ index_algorithm, index_using = add_index_options(table_name, column_name, options)
57
+
58
+ index_algorithm[0, 0] = ', ' if index_algorithm.present?
59
+ "ADD #{index_type} INDEX #{quote_column_name(index_name)} #{index_using} (#{index_columns})#{index_algorithm}"
60
+ end
61
+
62
+ def remove_index_for_alter(table_name, options = {})
63
+ index_name = index_name_for_remove(table_name, options)
64
+ "DROP INDEX #{quote_column_name(index_name)}"
65
+ end
66
+
67
+ def add_timestamps_for_alter(table_name, options = {})
68
+ [
69
+ add_column_for_alter(table_name, :created_at, :datetime, options),
70
+ add_column_for_alter(table_name, :updated_at, :datetime, options)
71
+ ]
72
+ end
73
+
74
+ def remove_timestamps_for_alter(table_name, _options = {})
75
+ [remove_column_for_alter(table_name, :updated_at), remove_column_for_alter(table_name, :created_at)]
76
+ end
77
+
78
+ def add_column_for_alter(table_name, column_name, type, options = {})
79
+ td = create_table_definition(table_name)
80
+ cd = td.new_column_definition(column_name, type, options)
81
+ schema_creation.accept(ActiveRecord::ConnectionAdapters::AddColumnDefinition.new(cd))
82
+ end
83
+
84
+ def remove_column_for_alter(_table_name, column_name, _type = nil, _options = {})
85
+ "DROP COLUMN #{quote_column_name(column_name)}"
86
+ end
87
+
88
+ def remove_columns_for_alter(table_name, *column_names)
89
+ column_names.map { |column_name| remove_column_for_alter(table_name, column_name) }
90
+ end
91
+ end
@@ -39,15 +39,31 @@ module ActiveRecord
39
39
 
40
40
  module ConnectionAdapters
41
41
  class DepartureAdapter < AbstractMysqlAdapter
42
-
43
42
  class Column < ActiveRecord::ConnectionAdapters::MySQL::Column
44
43
  def adapter
45
44
  DepartureAdapter
46
45
  end
47
46
  end
48
47
 
48
+ class SchemaCreation < ActiveRecord::ConnectionAdapters::MySQL::SchemaCreation
49
+ def visit_DropForeignKey(name) # rubocop:disable Naming/MethodName
50
+ fk_name =
51
+ if name =~ /^__(.+)/
52
+ Regexp.last_match(1)
53
+ else
54
+ "_#{name}"
55
+ end
56
+
57
+ "DROP FOREIGN KEY #{fk_name}"
58
+ end
59
+ end
60
+
49
61
  extend Forwardable
50
62
 
63
+ unless method_defined?(:change_column_for_alter)
64
+ include ForAlterStatements
65
+ end
66
+
51
67
  ADAPTER_NAME = 'Percona'.freeze
52
68
 
53
69
  def_delegators :mysql_adapter, :last_inserted_id, :each_hash, :set_field_encoding
@@ -116,11 +132,31 @@ module ActiveRecord
116
132
  execute "ALTER TABLE #{quote_table_name(table_name)} DROP INDEX #{quote_column_name(index_name)}"
117
133
  end
118
134
 
135
+ def schema_creation
136
+ SchemaCreation.new(self)
137
+ end
138
+
139
+ def change_table(table_name, _options = {})
140
+ recorder = ActiveRecord::Migration::CommandRecorder.new(self)
141
+ yield update_table_definition(table_name, recorder)
142
+ bulk_change_table(table_name, recorder.commands)
143
+ end
144
+
119
145
  # Returns the MySQL error number from the exception. The
120
146
  # AbstractMysqlAdapter requires it to be implemented
121
147
  def error_number(_exception); end
122
148
 
123
149
  def full_version
150
+ if ActiveRecord::VERSION::MAJOR < 6
151
+ get_full_version
152
+ else
153
+ schema_cache.database_version.full_version_string
154
+ end
155
+ end
156
+
157
+ # This is a method defined in Rails 6.0, and we have no control over the
158
+ # naming of this method.
159
+ def get_full_version # rubocop:disable Naming/AccessorMethodName
124
160
  mysql_adapter.raw_connection.server_info[:version]
125
161
  end
126
162
 
@@ -1,6 +1,8 @@
1
1
  require 'active_record'
2
2
  require 'active_support/all'
3
3
 
4
+ require 'active_record/connection_adapters/for_alter'
5
+
4
6
  require 'departure/version'
5
7
  require 'departure/log_sanitizers/password_sanitizer'
6
8
  require 'departure/runner'
@@ -11,6 +13,7 @@ require 'departure/logger_factory'
11
13
  require 'departure/configuration'
12
14
  require 'departure/errors'
13
15
  require 'departure/command'
16
+ require 'departure/connection_base'
14
17
 
15
18
  require 'departure/railtie' if defined?(Rails)
16
19
 
@@ -59,7 +62,7 @@ module Departure
59
62
  def reconnect_with_percona
60
63
  connection_config = ActiveRecord::Base
61
64
  .connection_config.merge(adapter: 'percona')
62
- ActiveRecord::Base.establish_connection(connection_config)
65
+ Departure::ConnectionBase.establish_connection(connection_config)
63
66
  end
64
67
  end
65
68
  end
@@ -4,7 +4,7 @@ module Departure
4
4
  # Represents the '--alter' argument of Percona's pt-online-schema-change
5
5
  # See https://www.percona.com/doc/percona-toolkit/2.0/pt-online-schema-change.html
6
6
  class AlterArgument
7
- ALTER_TABLE_REGEX = /\AALTER TABLE `(\w+)` /
7
+ ALTER_TABLE_REGEX = /\AALTER TABLE [^\s]*[\n]* /
8
8
 
9
9
  attr_reader :table_name
10
10
 
@@ -17,8 +17,12 @@ module Departure
17
17
 
18
18
  match = statement.match(ALTER_TABLE_REGEX)
19
19
  raise InvalidAlterStatement unless match
20
-
21
- @table_name = match.captures[0]
20
+ # Separates the ALTER TABLE from the table_name
21
+ #
22
+ # Removes the grave marks, if they are there, so we can get the table_name
23
+ @table_name = String(match)
24
+ .split(' ')[2]
25
+ .delete('`')
22
26
  end
23
27
 
24
28
  # Returns the '--alter' pt-online-schema-change argument as a string. See
@@ -38,6 +42,8 @@ module Departure
38
42
  @parsed_statement ||= statement
39
43
  .gsub(ALTER_TABLE_REGEX, '')
40
44
  .gsub('`', '\\\`')
45
+ .gsub(/\\n/, '')
46
+ .gsub('"', '\\\"')
41
47
  end
42
48
  end
43
49
  end
@@ -0,0 +1,9 @@
1
+ module Departure
2
+ class ConnectionBase < ActiveRecord::Base
3
+ def self.establish_connection(config = nil)
4
+ super.tap do
5
+ ActiveRecord::Base.connection_specification_name = connection_specification_name
6
+ end
7
+ end
8
+ end
9
+ end
@@ -15,7 +15,7 @@ module Departure
15
15
  #
16
16
  # @return [String]
17
17
  def to_s
18
- @to_s ||= "-h #{host} -P #{port} -u #{user} #{password_argument}"
18
+ @to_s ||= "#{host_argument} -P #{port} -u #{user} #{password_argument}"
19
19
  end
20
20
 
21
21
  # TODO: Doesn't the abstract adapter already handle this somehow?
@@ -40,6 +40,17 @@ module Departure
40
40
  end
41
41
  end
42
42
 
43
+ # Returns the host fragment of the details string, adds ssl options if needed
44
+ #
45
+ # @return [String]
46
+ def host_argument
47
+ host_string = host
48
+ if ssl_ca.present?
49
+ host_string += ";mysql_ssl=1;mysql_ssl_client_ca=#{ssl_ca}"
50
+ end
51
+ "-h \"#{host_string}\""
52
+ end
53
+
43
54
  private
44
55
 
45
56
  attr_reader :connection_data
@@ -74,5 +85,12 @@ module Departure
74
85
  def port
75
86
  connection_data.fetch(:port, DEFAULT_PORT)
76
87
  end
88
+
89
+ # Returns the database' SSL CA certificate.
90
+ #
91
+ # @return [String]
92
+ def ssl_ca
93
+ connection_data.fetch(:sslca, nil)
94
+ end
77
95
  end
78
96
  end
@@ -1,3 +1,3 @@
1
1
  module Departure
2
- VERSION = '6.1.0'.freeze
2
+ VERSION = '6.2.0'.freeze
3
3
  end
@@ -52,7 +52,7 @@ module Lhm
52
52
  #
53
53
  # @return [column_factory]
54
54
  def column
55
- cast_type = ActiveRecord::Base.connection.lookup_cast_type(definition)
55
+ cast_type = ActiveRecord::Base.connection.send(:lookup_cast_type, definition)
56
56
  metadata = ActiveRecord::ConnectionAdapters::SqlTypeMetadata.new(
57
57
  type: cast_type.type,
58
58
  sql_type: definition,
@@ -6,8 +6,6 @@ require 'active_record/connection_adapters/mysql2_adapter'
6
6
  # the tests.
7
7
  #
8
8
  class TestDatabase
9
-
10
-
11
9
  # Constructor
12
10
  #
13
11
  # @param config [Hash]
@@ -33,10 +31,10 @@ class TestDatabase
33
31
  # Creates the ActiveRecord's schema_migrations table required for
34
32
  # migrations to work. Before, it drops the table if it already exists
35
33
  def drop_and_create_schema_migrations_table
36
- sql = [
37
- "USE #{@database}",
38
- "DROP TABLE IF EXISTS schema_migrations",
39
- "CREATE TABLE schema_migrations ( version varchar(255) COLLATE utf8_unicode_ci NOT NULL, UNIQUE KEY unique_schema_migrations (version)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"
34
+ sql = [
35
+ "USE #{@database}",
36
+ 'DROP TABLE IF EXISTS schema_migrations',
37
+ 'CREATE TABLE schema_migrations ( version varchar(255) COLLATE utf8_unicode_ci NOT NULL, UNIQUE KEY unique_schema_migrations (version)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci'
40
38
  ]
41
39
 
42
40
  run_commands(sql)
@@ -58,19 +56,17 @@ class TestDatabase
58
56
  def drop_and_create_comments_table
59
57
  sql = [
60
58
  "USE #{@database}",
61
- "DROP TABLE IF EXISTS comments",
62
- "CREATE TABLE comments ( id int(12) NOT NULL AUTO_INCREMENT, PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"
59
+ 'DROP TABLE IF EXISTS comments',
60
+ 'CREATE TABLE comments ( id bigint(20) NOT NULL AUTO_INCREMENT, PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci'
63
61
  ]
64
62
 
65
63
  run_commands(sql)
66
64
  end
67
65
 
68
66
  def run_commands(sql)
69
- conn.execute("START TRANSACTION")
70
- sql.each { |str|
71
- conn.execute(str)
72
- }
73
- conn.execute("COMMIT")
67
+ conn.execute('START TRANSACTION')
68
+ sql.each { |str| conn.execute(str) }
69
+ conn.execute('COMMIT')
74
70
  end
75
71
 
76
72
  def conn
@@ -78,6 +74,7 @@ class TestDatabase
78
74
  host: @config['hostname'],
79
75
  username: @config['username'],
80
76
  password: @config['password'],
81
- reconnect: true)
77
+ reconnect: true
78
+ )
82
79
  end
83
80
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: departure
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.0
4
+ version: 6.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya Zayats
@@ -11,39 +11,72 @@ authors:
11
11
  - Enrico Stano
12
12
  - Adrian Serafin
13
13
  - Kirk Haines
14
+ - Guillermo Iguaran
14
15
  autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
- date: 2018-02-27 00:00:00.000000000 Z
18
+ date: 2020-06-23 00:00:00.000000000 Z
18
19
  dependencies:
19
20
  - !ruby/object:Gem::Dependency
20
- name: rails
21
+ name: railties
21
22
  requirement: !ruby/object:Gem::Requirement
22
23
  requirements:
23
- - - "~>"
24
+ - - ">="
24
25
  - !ruby/object:Gem::Version
25
- version: 5.1.0
26
+ version: 5.2.0
27
+ - - "<"
28
+ - !ruby/object:Gem::Version
29
+ version: '6.1'
26
30
  type: :runtime
27
31
  prerelease: false
28
32
  version_requirements: !ruby/object:Gem::Requirement
29
33
  requirements:
30
- - - "~>"
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 5.2.0
37
+ - - "<"
31
38
  - !ruby/object:Gem::Version
32
- version: 5.1.0
39
+ version: '6.1'
40
+ - !ruby/object:Gem::Dependency
41
+ name: activerecord
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 5.2.0
47
+ - - "<"
48
+ - !ruby/object:Gem::Version
49
+ version: '6.1'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 5.2.0
57
+ - - "<"
58
+ - !ruby/object:Gem::Version
59
+ version: '6.1'
33
60
  - !ruby/object:Gem::Dependency
34
61
  name: mysql2
35
62
  requirement: !ruby/object:Gem::Requirement
36
63
  requirements:
37
- - - "~>"
64
+ - - ">="
38
65
  - !ruby/object:Gem::Version
39
66
  version: 0.4.0
67
+ - - "<="
68
+ - !ruby/object:Gem::Version
69
+ version: 0.5.3
40
70
  type: :runtime
41
71
  prerelease: false
42
72
  version_requirements: !ruby/object:Gem::Requirement
43
73
  requirements:
44
- - - "~>"
74
+ - - ">="
45
75
  - !ruby/object:Gem::Version
46
76
  version: 0.4.0
77
+ - - "<="
78
+ - !ruby/object:Gem::Version
79
+ version: 0.5.3
47
80
  - !ruby/object:Gem::Dependency
48
81
  name: rake
49
82
  requirement: !ruby/object:Gem::Requirement
@@ -131,10 +164,11 @@ description: Execute your ActiveRecord migrations with Percona's pt-online-schem
131
164
  email:
132
165
  - ilya.zayats@redbooth.com
133
166
  - pau.perez@redbooth.com
134
- - fran.casas@redbooth.com
167
+ - nflamel@gmail.com
135
168
  - jorge.morante@redbooth.com
136
169
  - adrian@softmad.pl
137
170
  - wyhaines@gmail.com
171
+ - guilleiguaran@gmail.com
138
172
  executables: []
139
173
  extensions: []
140
174
  extra_rdoc_files: []
@@ -159,12 +193,14 @@ files:
159
193
  - configuration.rb
160
194
  - departure.gemspec
161
195
  - docker-compose.yml
196
+ - lib/active_record/connection_adapters/for_alter.rb
162
197
  - lib/active_record/connection_adapters/percona_adapter.rb
163
198
  - lib/departure.rb
164
199
  - lib/departure/alter_argument.rb
165
200
  - lib/departure/cli_generator.rb
166
201
  - lib/departure/command.rb
167
202
  - lib/departure/configuration.rb
203
+ - lib/departure/connection_base.rb
168
204
  - lib/departure/connection_details.rb
169
205
  - lib/departure/dsn.rb
170
206
  - lib/departure/errors.rb
@@ -201,8 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
237
  - !ruby/object:Gem::Version
202
238
  version: '0'
203
239
  requirements: []
204
- rubyforge_project:
205
- rubygems_version: 2.4.5.2
240
+ rubygems_version: 3.1.2
206
241
  signing_key:
207
242
  specification_version: 4
208
243
  summary: pt-online-schema-change runner for ActiveRecord migrations