percona_migrator 0.1.0.rc.7 → 0.1.1
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 +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +3 -1
- data/CHANGELOG.md +25 -0
- data/Gemfile +1 -1
- data/README.md +26 -5
- data/lib/percona_migrator/configuration.rb +18 -0
- data/lib/percona_migrator/errors.rb +35 -0
- data/lib/percona_migrator/logger.rb +12 -4
- data/lib/percona_migrator/null_logger.rb +4 -0
- data/lib/percona_migrator/railtie.rb +6 -33
- data/lib/percona_migrator/runner.rb +33 -41
- data/lib/percona_migrator/version.rb +1 -1
- data/lib/percona_migrator.rb +51 -0
- data/percona_migrator.gemspec +7 -2
- metadata +13 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59ecf09f58f8aa46d64cf996a2a91a8acfa6dc8b
|
4
|
+
data.tar.gz: 24daf3f8ba0bd51f1804b23857a0a94d4d345bfc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b1e0e1b42bcf64cd145a34882de830b572e9aabfcd3616a03bf7f81d1545864ca91951b1217f0bbf78191d41aeaa1b29761e3542fa7c110abff1823e4c845ff
|
7
|
+
data.tar.gz: 02eae12611279a35d0cfaf243c1cda0a883c8ad91c792fea9ae11826b1b49e208eb6fa0da434f68706560fcc5ecf7535c5e9b3e366c406d010b53766aded8e27
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -2,12 +2,14 @@ language: ruby
|
|
2
2
|
rvm:
|
3
3
|
- 2.1.2
|
4
4
|
before_install:
|
5
|
-
-
|
5
|
+
- sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 8507EFA5
|
6
6
|
- echo "deb http://repo.percona.com/apt `lsb_release -cs` main" | sudo tee -a /etc/apt/sources.list
|
7
7
|
- sudo apt-get update -qq
|
8
8
|
- sudo apt-get install percona-toolkit
|
9
9
|
- gem update bundler
|
10
10
|
- bin/setup
|
11
|
+
after_success:
|
12
|
+
- codeclimate-test-reporter
|
11
13
|
|
12
14
|
branches:
|
13
15
|
only:
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,31 @@ Please follow the format in [Keep a Changelog](http://keepachangelog.com/)
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
### Added
|
10
|
+
### Changed
|
11
|
+
### Removed
|
12
|
+
### Fixed
|
13
|
+
|
14
|
+
## [0.1.1] - 2017-03-10
|
15
|
+
|
16
|
+
### Added
|
17
|
+
|
18
|
+
- Store pt-online-schema-change's stderr to percona_migrator_error.log in the
|
19
|
+
default Rails tmp folder.
|
20
|
+
- Allow configuring the tmp directory where the error log gets written into.
|
21
|
+
- Output a deprecation warning when installing and running the gem. It will be
|
22
|
+
replaced by Departure soon.
|
23
|
+
|
24
|
+
### Changed
|
25
|
+
|
26
|
+
- No longer a hard dependency on mysql2 0.3.20. Will accept 0.3.20 or any
|
27
|
+
higher patch revisions.
|
28
|
+
|
29
|
+
### Fixed
|
30
|
+
|
31
|
+
- Output pt-online-schema-change's stdout while the migration is running instead
|
32
|
+
of all of it at the end.
|
33
|
+
|
9
34
|
## [0.1.0.rc.7] - 2016-09-15
|
10
35
|
|
11
36
|
### Added
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# Departure [](https://travis-ci.org/redbooth/percona_migrator) [](https://codeclimate.com/github/redbooth/percona_migrator)
|
2
2
|
|
3
|
-
|
3
|
+
Departure is an **ActiveRecord connection adapter** that allows running
|
4
4
|
**MySQL online and non-blocking DDL** through `ActiveRecord::Migration` without needing
|
5
5
|
to use a different DSL other than Rails' migrations DSL.
|
6
6
|
|
@@ -9,9 +9,17 @@ It uses `pt-online-schema-change` command-line tool of
|
|
9
9
|
Toolkit](https://www.percona.com/doc/percona-toolkit/2.0/pt-online-schema-change.html)
|
10
10
|
which runs MySQL alter table statements without downtime.
|
11
11
|
|
12
|
+
## Rename from "Percona Migrator"
|
13
|
+
|
14
|
+
This project was formerly known as "Percona Migrator", but this incurs in an
|
15
|
+
infringement of Percona's trade mark policy and thus has to be renamed. Said
|
16
|
+
name is likely to cause confusion as to the source of the wrapper.
|
17
|
+
|
18
|
+
The next major versions will use "Departure" as gem name.
|
19
|
+
|
12
20
|
## Installation
|
13
21
|
|
14
|
-
|
22
|
+
Departure relies on `pt-online-schema-change` from [Percona
|
15
23
|
Toolkit](https://www.percona.com/doc/percona-toolkit/2.0/pt-online-schema-change.html)
|
16
24
|
|
17
25
|
### Mac
|
@@ -62,15 +70,28 @@ migration.
|
|
62
70
|
### LHM support
|
63
71
|
|
64
72
|
If you moved to Soundcloud's [Lhm](https://github.com/soundcloud/lhm) already,
|
65
|
-
we got you covered.
|
73
|
+
we got you covered. Departure overrides Lhm's DSL so that all the alter
|
66
74
|
statements also go through `pt-online-schema-change` as well.
|
67
75
|
|
68
76
|
You can keep your Lhm migrations and start using Rails migration's DSL back
|
69
77
|
again in your next migration.
|
70
78
|
|
79
|
+
## Configuration
|
80
|
+
|
81
|
+
You can override any of the default values from an initializer:
|
82
|
+
|
83
|
+
```ruby
|
84
|
+
PerconaMigrator.configure do |config|
|
85
|
+
config.tmp_path = '/tmp/'
|
86
|
+
end
|
87
|
+
```
|
88
|
+
|
89
|
+
It's strongly recommended to name it after this gems name, such as
|
90
|
+
`config/initializers/percona_migrator.rb`
|
91
|
+
|
71
92
|
## How it works
|
72
93
|
|
73
|
-
When booting your Rails app,
|
94
|
+
When booting your Rails app, Departure extends the
|
74
95
|
`ActiveRecord::Migration#migrate` method to reset the connection and reestablish
|
75
96
|
it using the `PerconaAdapter` instead of the one you defined in your
|
76
97
|
`config/database.yml`.
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module PerconaMigrator
|
2
|
+
class Configuration
|
3
|
+
attr_accessor :tmp_path
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@tmp_path = '.'.freeze
|
7
|
+
@error_log_filename = 'percona_migrator_error.log'.freeze
|
8
|
+
end
|
9
|
+
|
10
|
+
def error_log_path
|
11
|
+
File.join(tmp_path, error_log_filename)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
attr_reader :error_log_filename
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module PerconaMigrator
|
2
|
+
class Error < StandardError; end
|
3
|
+
|
4
|
+
# Used when for whatever reason we couldn't get the spawned process'
|
5
|
+
# status.
|
6
|
+
class NoStatusError < Error
|
7
|
+
def message
|
8
|
+
'Status could not be retrieved'.freeze
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
# Used when the spawned process failed by receiving a signal.
|
13
|
+
# pt-online-schema-change returns "SIGSEGV (signal 11)" on failures.
|
14
|
+
class SignalError < Error
|
15
|
+
attr_reader :status
|
16
|
+
|
17
|
+
# Constructor
|
18
|
+
#
|
19
|
+
# @param status [Process::Status]
|
20
|
+
def initialize(status)
|
21
|
+
super
|
22
|
+
@status = status
|
23
|
+
end
|
24
|
+
|
25
|
+
def message
|
26
|
+
status.to_s
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class CommandNotFoundError < Error
|
31
|
+
def message
|
32
|
+
'Please install pt-online-schema-change. Check: https://www.percona.com/doc/percona-toolkit for further details'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -1,7 +1,8 @@
|
|
1
1
|
module PerconaMigrator
|
2
|
-
# Copies the ActiveRecord::Migration #say and #write
|
3
|
-
# status. It's not possible to reuse
|
4
|
-
# the migration's instance can't be
|
2
|
+
# Copies the ActiveRecord::Migration #say and #write plus a new
|
3
|
+
# #write_no_newline to log the migration's status. It's not possible to reuse
|
4
|
+
# the from ActiveRecord::Migration because the migration's instance can't be
|
5
|
+
# seen from the connection adapter.
|
5
6
|
class Logger
|
6
7
|
|
7
8
|
# Outputs the message through the stdout, following the
|
@@ -13,11 +14,18 @@ module PerconaMigrator
|
|
13
14
|
write "#{subitem ? " ->" : "--"} #{message}"
|
14
15
|
end
|
15
16
|
|
16
|
-
# Outputs the text through the stdout
|
17
|
+
# Outputs the text through the stdout adding a new line at the end
|
17
18
|
#
|
18
19
|
# @param text [String]
|
19
20
|
def write(text = '')
|
20
21
|
puts(text)
|
21
22
|
end
|
23
|
+
|
24
|
+
# Outputs the text through the stdout without adding a new line at the end
|
25
|
+
#
|
26
|
+
# @param text [String]
|
27
|
+
def write_no_newline(text)
|
28
|
+
print(text)
|
29
|
+
end
|
22
30
|
end
|
23
31
|
end
|
@@ -15,40 +15,13 @@ module PerconaMigrator
|
|
15
15
|
# regular Rails Migration DSL.
|
16
16
|
initializer 'percona_migrator.configure_rails_initialization' do
|
17
17
|
ActiveSupport.on_load(:active_record) do
|
18
|
+
PerconaMigrator.load
|
19
|
+
end
|
20
|
+
end
|
18
21
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
# Replaces the current connection adapter with the PerconaAdapter and
|
23
|
-
# patches LHM, then it continues with the regular migration process.
|
24
|
-
#
|
25
|
-
# @param direction [Symbol] :up or :down
|
26
|
-
def migrate(direction)
|
27
|
-
reconnect_with_percona
|
28
|
-
include_foreigner if defined?(Foreigner)
|
29
|
-
|
30
|
-
::Lhm.migration = self
|
31
|
-
original_migrate(direction)
|
32
|
-
end
|
33
|
-
|
34
|
-
# Includes the Foreigner's Mysql2Adapter implemention in
|
35
|
-
# PerconaMigratorAdapter to support foreign keys
|
36
|
-
def include_foreigner
|
37
|
-
Foreigner::Adapter.safe_include(
|
38
|
-
:PerconaMigratorAdapter,
|
39
|
-
Foreigner::ConnectionAdapters::Mysql2Adapter
|
40
|
-
)
|
41
|
-
end
|
42
|
-
|
43
|
-
# Make all connections in the connection pool to use PerconaAdapter
|
44
|
-
# instead of the current adapter.
|
45
|
-
def reconnect_with_percona
|
46
|
-
connection_config = ActiveRecord::Base.connection_config
|
47
|
-
ActiveRecord::Base.establish_connection(
|
48
|
-
connection_config.merge(adapter: 'percona')
|
49
|
-
)
|
50
|
-
end
|
51
|
-
end
|
22
|
+
initializer 'percona_migrator.configure' do |app|
|
23
|
+
PerconaMigrator.configure do |config|
|
24
|
+
config.tmp_path = app.paths['tmp'].first
|
52
25
|
end
|
53
26
|
end
|
54
27
|
end
|
@@ -1,39 +1,6 @@
|
|
1
1
|
require 'open3'
|
2
2
|
|
3
3
|
module PerconaMigrator
|
4
|
-
class Error < StandardError; end
|
5
|
-
|
6
|
-
# Used when for whatever reason we couldn't get the spawned process'
|
7
|
-
# status.
|
8
|
-
class NoStatusError < Error
|
9
|
-
def message
|
10
|
-
'Status could not be retrieved'.freeze
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
# Used when the spawned process failed by receiving a signal.
|
15
|
-
# pt-online-schema-change returns "SIGSEGV (signal 11)" on failures.
|
16
|
-
class SignalError < Error
|
17
|
-
attr_reader :status
|
18
|
-
|
19
|
-
# Constructor
|
20
|
-
#
|
21
|
-
# @param status [Process::Status]
|
22
|
-
def initialize(status)
|
23
|
-
super
|
24
|
-
@status = status
|
25
|
-
end
|
26
|
-
|
27
|
-
def message
|
28
|
-
status.to_s
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
class CommandNotFoundError < Error
|
33
|
-
def message
|
34
|
-
'Please install pt-online-schema-change. Check: https://www.percona.com/doc/percona-toolkit for further details'
|
35
|
-
end
|
36
|
-
end
|
37
4
|
|
38
5
|
# It executes pt-online-schema-change commands in a new process and gets its
|
39
6
|
# output and status
|
@@ -46,11 +13,12 @@ module PerconaMigrator
|
|
46
13
|
# @param cli_generator [CliGenerator]
|
47
14
|
# @param mysql_adapter [ActiveRecord::ConnectionAdapter] it must implement
|
48
15
|
# #execute and #raw_connection
|
49
|
-
def initialize(logger, cli_generator, mysql_adapter)
|
16
|
+
def initialize(logger, cli_generator, mysql_adapter, config = PerconaMigrator.configuration)
|
50
17
|
@logger = logger
|
51
18
|
@cli_generator = cli_generator
|
52
19
|
@mysql_adapter = mysql_adapter
|
53
20
|
@status = nil
|
21
|
+
@config = config
|
54
22
|
end
|
55
23
|
|
56
24
|
# Executes the passed sql statement using pt-online-schema-change for ALTER
|
@@ -88,8 +56,7 @@ module PerconaMigrator
|
|
88
56
|
|
89
57
|
private
|
90
58
|
|
91
|
-
attr_reader :command, :logger, :status, :
|
92
|
-
:mysql_adapter
|
59
|
+
attr_reader :command, :logger, :status, :cli_generator, :mysql_adapter, :config
|
93
60
|
|
94
61
|
# Checks whether the sql statement is an ALTER TABLE
|
95
62
|
#
|
@@ -103,11 +70,17 @@ module PerconaMigrator
|
|
103
70
|
#
|
104
71
|
# @yield
|
105
72
|
def logging
|
73
|
+
log_deprecations
|
106
74
|
log_started
|
107
75
|
yield
|
108
76
|
log_finished
|
109
77
|
end
|
110
78
|
|
79
|
+
def log_deprecations
|
80
|
+
logger.write("\n")
|
81
|
+
logger.write("[DEPRECATION] This gem has been renamed to Departure and will no longer be supported. Please switch to Departure as soon as possible.")
|
82
|
+
end
|
83
|
+
|
111
84
|
# Logs when the execution started
|
112
85
|
def log_started
|
113
86
|
logger.write("\n")
|
@@ -116,10 +89,18 @@ module PerconaMigrator
|
|
116
89
|
|
117
90
|
# Executes the command and prints its output to the stdout
|
118
91
|
def run_command
|
119
|
-
Open3.popen3(command) do |_stdin, stdout,
|
120
|
-
|
121
|
-
|
122
|
-
|
92
|
+
Open3.popen3("#{command} 2> #{error_log_path}") do |_stdin, stdout, _stderr, waith_thr|
|
93
|
+
begin
|
94
|
+
loop do
|
95
|
+
IO.select([stdout])
|
96
|
+
data = stdout.read_nonblock(8)
|
97
|
+
logger.write_no_newline(data)
|
98
|
+
end
|
99
|
+
rescue EOFError
|
100
|
+
# noop
|
101
|
+
ensure
|
102
|
+
@status = waith_thr.value
|
103
|
+
end
|
123
104
|
end
|
124
105
|
end
|
125
106
|
|
@@ -129,7 +110,6 @@ module PerconaMigrator
|
|
129
110
|
# @raise [SignalError] if the spawned process received a signal
|
130
111
|
# @raise [CommandNotFoundError] if pt-online-schema-change can't be found
|
131
112
|
def validate_status
|
132
|
-
raise NoStatusError if status.nil?
|
133
113
|
raise SignalError.new(status) if status.signaled?
|
134
114
|
raise CommandNotFoundError if status.exitstatus == COMMAND_NOT_FOUND
|
135
115
|
raise Error, error_message unless status.success?
|
@@ -140,5 +120,17 @@ module PerconaMigrator
|
|
140
120
|
def log_finished
|
141
121
|
logger.write("\n")
|
142
122
|
end
|
123
|
+
|
124
|
+
# The path where the percona toolkit stderr will be written
|
125
|
+
#
|
126
|
+
# @return [String]
|
127
|
+
def error_log_path
|
128
|
+
config.error_log_path
|
129
|
+
end
|
130
|
+
|
131
|
+
# @return [String]
|
132
|
+
def error_message
|
133
|
+
File.read(error_log_path)
|
134
|
+
end
|
143
135
|
end
|
144
136
|
end
|
data/lib/percona_migrator.rb
CHANGED
@@ -7,8 +7,59 @@ require 'percona_migrator/cli_generator'
|
|
7
7
|
require 'percona_migrator/logger'
|
8
8
|
require 'percona_migrator/null_logger'
|
9
9
|
require 'percona_migrator/logger_factory'
|
10
|
+
require 'percona_migrator/configuration'
|
11
|
+
require 'percona_migrator/errors'
|
10
12
|
|
11
13
|
require 'percona_migrator/railtie' if defined?(Rails)
|
12
14
|
|
15
|
+
# We need the OS not to buffer the IO to see pt-osc's output while migrating
|
16
|
+
$stdout.sync = true
|
17
|
+
|
13
18
|
module PerconaMigrator
|
19
|
+
class << self
|
20
|
+
attr_accessor :configuration
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.configure
|
24
|
+
self.configuration ||= Configuration.new
|
25
|
+
yield(configuration)
|
26
|
+
end
|
27
|
+
|
28
|
+
# Hooks Percona Migrator into Rails migrations by replacing the configured
|
29
|
+
# database adapter
|
30
|
+
def self.load
|
31
|
+
ActiveRecord::Migration.class_eval do
|
32
|
+
alias_method :original_migrate, :migrate
|
33
|
+
|
34
|
+
# Replaces the current connection adapter with the PerconaAdapter and
|
35
|
+
# patches LHM, then it continues with the regular migration process.
|
36
|
+
#
|
37
|
+
# @param direction [Symbol] :up or :down
|
38
|
+
def migrate(direction)
|
39
|
+
reconnect_with_percona
|
40
|
+
include_foreigner if defined?(Foreigner)
|
41
|
+
|
42
|
+
::Lhm.migration = self
|
43
|
+
original_migrate(direction)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Includes the Foreigner's Mysql2Adapter implemention in
|
47
|
+
# PerconaMigratorAdapter to support foreign keys
|
48
|
+
def include_foreigner
|
49
|
+
Foreigner::Adapter.safe_include(
|
50
|
+
:PerconaMigratorAdapter,
|
51
|
+
Foreigner::ConnectionAdapters::Mysql2Adapter
|
52
|
+
)
|
53
|
+
end
|
54
|
+
|
55
|
+
# Make all connections in the connection pool to use PerconaAdapter
|
56
|
+
# instead of the current adapter.
|
57
|
+
def reconnect_with_percona
|
58
|
+
connection_config = ActiveRecord::Base.connection_config
|
59
|
+
ActiveRecord::Base.establish_connection(
|
60
|
+
connection_config.merge(adapter: 'percona')
|
61
|
+
)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
14
65
|
end
|
data/percona_migrator.gemspec
CHANGED
@@ -15,12 +15,17 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.homepage = 'http://github.com/redbooth/percona_migrator'
|
16
16
|
spec.license = 'MIT'
|
17
17
|
|
18
|
+
spec.post_install_message = <<-MESSAGE
|
19
|
+
! The Percona_migrator gem has been deprecated and has been replaced by Departure.
|
20
|
+
! See: https://rubygems.org/gems/departure
|
21
|
+
! And: https://github.com/redbooth/departure
|
22
|
+
MESSAGE
|
23
|
+
|
18
24
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
19
25
|
spec.require_paths = ['lib']
|
20
26
|
|
21
|
-
# TODO: Relax me
|
22
27
|
spec.add_runtime_dependency 'rails', '~>3.2.22'
|
23
|
-
spec.add_runtime_dependency 'mysql2', '0.3.20'
|
28
|
+
spec.add_runtime_dependency 'mysql2', '~>0.3.20'
|
24
29
|
|
25
30
|
spec.add_development_dependency 'bundler', '~> 1.10'
|
26
31
|
spec.add_development_dependency 'rake', '~> 10.0'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: percona_migrator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ilya Zayats
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2017-03-10 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rails
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
name: mysql2
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
requirements:
|
34
|
-
- -
|
34
|
+
- - "~>"
|
35
35
|
- !ruby/object:Gem::Version
|
36
36
|
version: 0.3.20
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- -
|
41
|
+
- - "~>"
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: 0.3.20
|
44
44
|
- !ruby/object:Gem::Dependency
|
@@ -154,6 +154,8 @@ files:
|
|
154
154
|
- lib/percona_migrator.rb
|
155
155
|
- lib/percona_migrator/alter_argument.rb
|
156
156
|
- lib/percona_migrator/cli_generator.rb
|
157
|
+
- lib/percona_migrator/configuration.rb
|
158
|
+
- lib/percona_migrator/errors.rb
|
157
159
|
- lib/percona_migrator/logger.rb
|
158
160
|
- lib/percona_migrator/logger_factory.rb
|
159
161
|
- lib/percona_migrator/null_logger.rb
|
@@ -166,7 +168,10 @@ homepage: http://github.com/redbooth/percona_migrator
|
|
166
168
|
licenses:
|
167
169
|
- MIT
|
168
170
|
metadata: {}
|
169
|
-
post_install_message:
|
171
|
+
post_install_message: |2
|
172
|
+
! The Percona_migrator gem has been deprecated and has been replaced by Departure.
|
173
|
+
! See: https://rubygems.org/gems/departure
|
174
|
+
! And: https://github.com/redbooth/departure
|
170
175
|
rdoc_options: []
|
171
176
|
require_paths:
|
172
177
|
- lib
|
@@ -177,12 +182,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
177
182
|
version: '0'
|
178
183
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
184
|
requirements:
|
180
|
-
- - "
|
185
|
+
- - ">="
|
181
186
|
- !ruby/object:Gem::Version
|
182
|
-
version:
|
187
|
+
version: '0'
|
183
188
|
requirements: []
|
184
189
|
rubyforge_project:
|
185
|
-
rubygems_version: 2.
|
190
|
+
rubygems_version: 2.6.10
|
186
191
|
signing_key:
|
187
192
|
specification_version: 4
|
188
193
|
summary: pt-online-schema-change runner for ActiveRecord migrations
|