percona-migrations-livelink 0.0.4 → 0.0.5
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/CHANGELOG.md +24 -0
- data/README.md +24 -0
- data/lib/percona-migrations.rb +1 -0
- data/lib/percona_migrations.rb +2 -4
- data/lib/percona_migrations/runners/base.rb +2 -1
- data/lib/percona_migrations/runners/percona.rb +6 -6
- data/lib/percona_migrations/version.rb +1 -1
- data/spec/lib/percona_migrations_spec.rb +17 -0
- metadata +23 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b7d274d7167e6920a383959a8eb4c239e94ddbd
|
4
|
+
data.tar.gz: 60dcfcf9186f425062f5d3ece10a955df6694419
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14a5a5b3a3215d72bfcfcae00e7db11be082809ac768374ac20bb3d3a3e84c3ce2aa7ac98bef36ea0e5fd3984cdba00de9a4a8e22fe382673944844693978cc4
|
7
|
+
data.tar.gz: 5dbaa2a59ff404b7264dbb279cb13b6b3ed3ba35c52f42f55e3347e4dce1a6c2572fb44552d7950761eeeba9ff069945f307d50cc37d8b0b1108a704794e0c01
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [0.0.5] - 10-08-2020
|
8
|
+
- Allow passing config options to percona_alter_table as a hash
|
9
|
+
- Add documentation for config options
|
10
|
+
- Create changelog
|
11
|
+
|
12
|
+
## [0.0.4] - 18-03-2016
|
13
|
+
- Create lib/percona-migrations-livelink.rb
|
14
|
+
|
15
|
+
## [0.0.3] - 17-03-2016
|
16
|
+
- Fork project from original repo
|
17
|
+
- Add support for most pt-online-schema-change config options
|
18
|
+
- Set up travis-ci
|
19
|
+
|
20
|
+
## [0.0.2] - 12-02-2015
|
21
|
+
- Add link to homepage
|
22
|
+
|
23
|
+
## [0.0.1] - 12-02-2015
|
24
|
+
- First official release tag
|
data/README.md
CHANGED
@@ -48,6 +48,30 @@ class AddAddressToUsers < ActiveRecord::Migration
|
|
48
48
|
end
|
49
49
|
```
|
50
50
|
|
51
|
+
## Configuration
|
52
|
+
|
53
|
+
Additional config can optionally be passed either in the initializer or in the migration itself
|
54
|
+
|
55
|
+
### As a block in the initializer
|
56
|
+
|
57
|
+
```ruby
|
58
|
+
PerconaMigrations.config do |c|
|
59
|
+
c.drop_old_table = false
|
60
|
+
c.max_load = 'Threads_running=60'
|
61
|
+
end
|
62
|
+
```
|
63
|
+
|
64
|
+
### As a hash argument to the `percona_alter_table` command
|
65
|
+
|
66
|
+
```ruby
|
67
|
+
def up
|
68
|
+
commands = columns.map { |name, type| "ADD COLUMN #{name} #{type}" }
|
69
|
+
options = { drop_old_table: false, max_load: 'Threads_running=60' }
|
70
|
+
|
71
|
+
percona_alter_table :users, commands, options: options
|
72
|
+
end
|
73
|
+
```
|
74
|
+
|
51
75
|
## Contributing
|
52
76
|
|
53
77
|
1. Fork it ( https://github.com/[my-github-username]/percona-migrations/fork )
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'percona_migrations'
|
data/lib/percona_migrations.rb
CHANGED
@@ -53,12 +53,10 @@ module PerconaMigrations
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
def pt_schema_tool_args
|
57
|
-
|
56
|
+
def pt_schema_tool_args(options: {})
|
58
57
|
@config.members.map do |key|
|
59
|
-
|
58
|
+
val = options.key?(key) ? options[key] : config[key]
|
60
59
|
arg = key.to_s.gsub(/_/,'-')
|
61
|
-
val = @config[key]
|
62
60
|
|
63
61
|
case val
|
64
62
|
when nil
|
@@ -12,8 +12,8 @@ module PerconaMigrations
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def run
|
15
|
-
|
16
|
-
PerconaMigrations.pt_schema_tool_args,
|
15
|
+
params = [
|
16
|
+
PerconaMigrations.pt_schema_tool_args(options: @options),
|
17
17
|
"--alter '#{@commands.join(', ')}'",
|
18
18
|
"-h #{database_config['host']}",
|
19
19
|
"-P #{database_config['port']}",
|
@@ -23,10 +23,10 @@ module PerconaMigrations
|
|
23
23
|
|
24
24
|
password = database_config['password']
|
25
25
|
if password && !password.empty?
|
26
|
-
|
26
|
+
params << "-p $PASSWORD"
|
27
27
|
end
|
28
28
|
|
29
|
-
run_command(
|
29
|
+
run_command(params.reject(&:empty?).join(' '), { 'PASSWORD' => password })
|
30
30
|
end
|
31
31
|
|
32
32
|
private
|
@@ -35,9 +35,9 @@ module PerconaMigrations
|
|
35
35
|
PerconaMigrations.database_config
|
36
36
|
end
|
37
37
|
|
38
|
-
def run_command(
|
38
|
+
def run_command(params, env_vars = {})
|
39
39
|
%w(dry-run execute).each do |mode|
|
40
|
-
cmd = "#{self.class.percona_command} #{
|
40
|
+
cmd = "#{self.class.percona_command} #{params} --#{mode}"
|
41
41
|
|
42
42
|
log "Running percona command: \"#{cmd}\""
|
43
43
|
|
@@ -70,4 +70,21 @@ RSpec.describe PerconaMigrations do
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
end
|
73
|
+
|
74
|
+
describe '::pt_schema_tool_args' do
|
75
|
+
before do
|
76
|
+
subject.instance_eval { @config = @config.class.new }
|
77
|
+
subject.config do |c|
|
78
|
+
c.statistics = true
|
79
|
+
c.drop_old_table = false
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'returns arguments, overriding any conflicting config settings' do
|
84
|
+
options = { drop_old_table: true, drop_new_table: false }
|
85
|
+
expect(subject.pt_schema_tool_args(options: options)).to eq(
|
86
|
+
'--no-drop-new-table --drop-old-table --statistics'
|
87
|
+
)
|
88
|
+
end
|
89
|
+
end
|
73
90
|
end
|
metadata
CHANGED
@@ -1,73 +1,73 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: percona-migrations-livelink
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey Varaksin
|
8
8
|
- Geoff Youngs
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-09-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '3.0'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '3.0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - ~>
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: 3.2.0
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - ~>
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 3.2.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: pry
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
|
-
description:
|
70
|
+
description:
|
71
71
|
email:
|
72
72
|
- varaksin86@gmail.com
|
73
73
|
- git@intersect-uk.co.uk
|
@@ -75,14 +75,16 @@ executables: []
|
|
75
75
|
extensions: []
|
76
76
|
extra_rdoc_files: []
|
77
77
|
files:
|
78
|
-
- .gitignore
|
79
|
-
- .rspec
|
80
|
-
- .travis.yml
|
78
|
+
- ".gitignore"
|
79
|
+
- ".rspec"
|
80
|
+
- ".travis.yml"
|
81
|
+
- CHANGELOG.md
|
81
82
|
- Gemfile
|
82
83
|
- LICENSE.txt
|
83
84
|
- README.md
|
84
85
|
- Rakefile
|
85
86
|
- lib/percona-migrations-livelink.rb
|
87
|
+
- lib/percona-migrations.rb
|
86
88
|
- lib/percona_migrations.rb
|
87
89
|
- lib/percona_migrations/helper_methods.rb
|
88
90
|
- lib/percona_migrations/runners.rb
|
@@ -101,24 +103,24 @@ homepage: https://github.com/svarks/percona-migrations
|
|
101
103
|
licenses:
|
102
104
|
- MIT
|
103
105
|
metadata: {}
|
104
|
-
post_install_message:
|
106
|
+
post_install_message:
|
105
107
|
rdoc_options: []
|
106
108
|
require_paths:
|
107
109
|
- lib
|
108
110
|
required_ruby_version: !ruby/object:Gem::Requirement
|
109
111
|
requirements:
|
110
|
-
- -
|
112
|
+
- - ">="
|
111
113
|
- !ruby/object:Gem::Version
|
112
114
|
version: '0'
|
113
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
116
|
requirements:
|
115
|
-
- -
|
117
|
+
- - ">="
|
116
118
|
- !ruby/object:Gem::Version
|
117
119
|
version: '0'
|
118
120
|
requirements: []
|
119
|
-
rubyforge_project:
|
120
|
-
rubygems_version: 2.
|
121
|
-
signing_key:
|
121
|
+
rubyforge_project:
|
122
|
+
rubygems_version: 2.5.2.2
|
123
|
+
signing_key:
|
122
124
|
specification_version: 4
|
123
125
|
summary: Allows to use percona in rails migrations.
|
124
126
|
test_files:
|