departure-next 6.7.1.pre.pre

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.
Files changed (65) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +7 -0
  3. data/.github/workflows/test.yml +54 -0
  4. data/.gitignore +14 -0
  5. data/.pryrc +11 -0
  6. data/.rspec +2 -0
  7. data/.rubocop.yml +66 -0
  8. data/.rubocop_todo.yml +238 -0
  9. data/20250312235906_add_deleted_reason_to_newsfeed_activities.rb +5 -0
  10. data/Appraisals +15 -0
  11. data/CHANGELOG.md +224 -0
  12. data/CODE_OF_CONDUCT.md +50 -0
  13. data/Dockerfile +32 -0
  14. data/Gemfile +11 -0
  15. data/Gemfile.lock +206 -0
  16. data/LICENSE.txt +22 -0
  17. data/README.md +246 -0
  18. data/RELEASING.md +17 -0
  19. data/Rakefile +25 -0
  20. data/bin/console +14 -0
  21. data/bin/rails +24 -0
  22. data/bin/rspec +16 -0
  23. data/bin/setup +7 -0
  24. data/config.yml.erb +5 -0
  25. data/configuration.rb +16 -0
  26. data/departure-next.gemspec +34 -0
  27. data/docker-compose.yml +23 -0
  28. data/gemfiles/rails_6_1.gemfile +10 -0
  29. data/gemfiles/rails_6_1.gemfile.lock +243 -0
  30. data/gemfiles/rails_7_0.gemfile +10 -0
  31. data/gemfiles/rails_7_0.gemfile.lock +242 -0
  32. data/gemfiles/rails_7_1.gemfile +10 -0
  33. data/gemfiles/rails_7_1.gemfile.lock +274 -0
  34. data/gemfiles/rails_7_2.gemfile +10 -0
  35. data/gemfiles/rails_7_2.gemfile.lock +274 -0
  36. data/lib/active_record/connection_adapters/for_alter.rb +103 -0
  37. data/lib/active_record/connection_adapters/patch_connection_handling.rb +18 -0
  38. data/lib/active_record/connection_adapters/percona_adapter.rb +187 -0
  39. data/lib/active_record/connection_adapters/rails_7_2_departure_adapter.rb +218 -0
  40. data/lib/departure/alter_argument.rb +49 -0
  41. data/lib/departure/cli_generator.rb +84 -0
  42. data/lib/departure/command.rb +105 -0
  43. data/lib/departure/configuration.rb +21 -0
  44. data/lib/departure/connection_base.rb +11 -0
  45. data/lib/departure/connection_details.rb +121 -0
  46. data/lib/departure/dsn.rb +25 -0
  47. data/lib/departure/errors.rb +39 -0
  48. data/lib/departure/log_sanitizers/password_sanitizer.rb +22 -0
  49. data/lib/departure/logger.rb +42 -0
  50. data/lib/departure/logger_factory.rb +16 -0
  51. data/lib/departure/migration.rb +104 -0
  52. data/lib/departure/null_logger.rb +15 -0
  53. data/lib/departure/option.rb +75 -0
  54. data/lib/departure/rails_adapter.rb +97 -0
  55. data/lib/departure/railtie.rb +21 -0
  56. data/lib/departure/runner.rb +75 -0
  57. data/lib/departure/user_options.rb +44 -0
  58. data/lib/departure/version.rb +3 -0
  59. data/lib/departure.rb +40 -0
  60. data/lib/lhm/adapter.rb +107 -0
  61. data/lib/lhm/column_with_sql.rb +89 -0
  62. data/lib/lhm/column_with_type.rb +29 -0
  63. data/lib/lhm.rb +23 -0
  64. data/test_database.rb +76 -0
  65. metadata +282 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f2f14fb32023a58be4d0def6f553b67e7a59ecfa92e5319c66770f3c65ecbf22
4
+ data.tar.gz: efee701ec70d435ed75b12e136c971d88f5bdf317739a5d7d196a1a6106ee363
5
+ SHA512:
6
+ metadata.gz: 7260d9268841719e1c0f0345907492f4fef64769e201d6f5a1ef7a3d8dc7a38d7d2add7654996f1e9436db5db62d5faafd4c493ec884f357e97a1b82863fa9b7
7
+ data.tar.gz: 99c83d3d9415b0a54483ec5ba726cf5c93cc2559a682d977a6784c24af91fdad9552601c63b0ec660ba55f6c446e1e90e37c78a494d9d5ed86edf6754fa0d08c
data/.codeclimate.yml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ engines:
3
+ rubocop:
4
+ enabled: false
5
+ ratings:
6
+ paths:
7
+ - "**.rb"
@@ -0,0 +1,54 @@
1
+ name: Test
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ test:
7
+ strategy:
8
+ fail-fast: false
9
+ matrix:
10
+ ruby:
11
+ - 3.1
12
+ - 3.2
13
+ - 3.3
14
+ gemfile:
15
+ - gemfiles/rails_6_1.gemfile
16
+ - gemfiles/rails_7_0.gemfile
17
+ - gemfiles/rails_7_1.gemfile
18
+ - gemfiles/rails_7_2.gemfile
19
+ env:
20
+ PERCONA_DB_USER: root
21
+ PERCONA_DB_PASSWORD: root
22
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ - uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: ${{ matrix.ruby }}
29
+ bundler-cache: true
30
+ - name: "Add Percona GPG key"
31
+ run: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 9334A25F8507EFA5
32
+ - name: "Add Percona APT repository"
33
+ run: echo "deb http://repo.percona.com/apt `lsb_release -cs` main" | sudo tee -a /etc/apt/sources.list
34
+ - run: sudo apt-get update -qq
35
+ - run: sudo apt-get install percona-toolkit
36
+ - name: Start MySQL server
37
+ run: sudo systemctl start mysql.service
38
+ - run: bin/setup
39
+ - run: bundle exec rake
40
+ lint:
41
+ strategy:
42
+ fail-fast: false
43
+ env:
44
+ PERCONA_DB_USER: root
45
+ PERCONA_DB_PASSWORD: root
46
+ BUNDLE_GEMFILE: gemfiles/rails_7_1.gemfile
47
+ runs-on: ubuntu-latest
48
+ steps:
49
+ - uses: actions/checkout@v4
50
+ - uses: ruby/setup-ruby@v1
51
+ with:
52
+ ruby-version: 3.3
53
+ bundler-cache: true
54
+ - run: bundle exec rubocop --parallel
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ .byebug_history
10
+ tags
11
+ departure_error.log
12
+ .ruby-version
13
+ .idea/
14
+ spec/dummy/log/
data/.pryrc ADDED
@@ -0,0 +1,11 @@
1
+ if defined?(PryByebug)
2
+ Pry.commands.alias_command 'c', 'continue'
3
+ Pry.commands.alias_command 's', 'step'
4
+ Pry.commands.alias_command 'n', 'next'
5
+ Pry.commands.alias_command 'f', 'finish'
6
+ Pry.commands.alias_command 'w', 'pry-backtrace'
7
+
8
+ Pry::Commands.command(/^$/, 'repeat last command') do
9
+ pry_instance.run_command Pry.history.to_a.last
10
+ end
11
+ end
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.rubocop.yml ADDED
@@ -0,0 +1,66 @@
1
+ ---
2
+ inherit_from:
3
+ - .rubocop_todo.yml
4
+
5
+ require:
6
+ - rubocop-performance
7
+
8
+ AllCops:
9
+ TargetRubyVersion: 2.4
10
+
11
+ Metrics/AbcSize:
12
+ Enabled: false
13
+
14
+ Metrics/BlockLength:
15
+ Max: 20
16
+ Exclude:
17
+ - 'spec/*'
18
+ - 'spec/**/*'
19
+
20
+ Metrics/BlockNesting:
21
+ Max: 4
22
+
23
+ Metrics/ClassLength:
24
+ Max: 250
25
+
26
+ Layout/LineLength:
27
+ Max: 120
28
+ Exclude:
29
+ - 'departure.gemspec'
30
+ - 'test_database.rb'
31
+
32
+ Metrics/MethodLength:
33
+ Max: 30
34
+
35
+ Metrics/ModuleLength:
36
+ Max: 250
37
+
38
+ Metrics/ParameterLists:
39
+ Max: 5
40
+
41
+ Performance/Casecmp:
42
+ Enabled: false
43
+
44
+ Style/CommandLiteral:
45
+ Exclude:
46
+ - 'test_database.rb'
47
+
48
+ Style/Documentation:
49
+ Enabled: false
50
+
51
+ Style/FrozenStringLiteralComment:
52
+ Enabled: false # We never ended up being forced to do this for Ruby 3.x
53
+
54
+ Style/MultilineBlockChain:
55
+ Exclude:
56
+ - 'spec/integration_spec.rb'
57
+
58
+ Layout/MultilineMethodCallIndentation:
59
+ Enabled: false
60
+
61
+ Style/SymbolArray:
62
+ Enabled: false
63
+
64
+ Style/RedundantPercentQ:
65
+ Exclude:
66
+ - 'departure.gemspec'
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,238 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2024-02-08 17:09:11 UTC using RuboCop version 1.60.2.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 3
10
+ # This cop supports safe autocorrection (--autocorrect).
11
+ # Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include.
12
+ # Include: **/*.gemspec
13
+ Gemspec/OrderedDependencies:
14
+ Exclude:
15
+ - 'departure.gemspec'
16
+
17
+ # Offense count: 1
18
+ # Configuration parameters: Severity, Include.
19
+ # Include: **/*.gemspec
20
+ Gemspec/RequiredRubyVersion:
21
+ Exclude:
22
+ - 'departure.gemspec'
23
+
24
+ # Offense count: 3
25
+ # This cop supports safe autocorrection (--autocorrect).
26
+ # Configuration parameters: EnforcedStyle.
27
+ # SupportedStyles: leading, trailing
28
+ Layout/DotPosition:
29
+ Exclude:
30
+ - 'spec/integration/indexes_spec.rb'
31
+
32
+ # Offense count: 6
33
+ # This cop supports safe autocorrection (--autocorrect).
34
+ Layout/EmptyLineAfterGuardClause:
35
+ Exclude:
36
+ - 'lib/active_record/connection_adapters/for_alter.rb'
37
+ - 'lib/active_record/connection_adapters/percona_adapter.rb'
38
+ - 'lib/departure/alter_argument.rb'
39
+ - 'lib/departure/log_sanitizers/password_sanitizer.rb'
40
+ - 'lib/departure/migration.rb'
41
+
42
+ # Offense count: 4
43
+ # This cop supports safe autocorrection (--autocorrect).
44
+ # Configuration parameters: IndentationWidth.
45
+ # SupportedStyles: special_inside_parentheses, consistent, align_brackets
46
+ Layout/FirstArrayElementIndentation:
47
+ EnforcedStyle: consistent
48
+
49
+ # Offense count: 1
50
+ # This cop supports safe autocorrection (--autocorrect).
51
+ # Configuration parameters: Width, AllowedPatterns.
52
+ Layout/IndentationWidth:
53
+ Exclude:
54
+ - 'spec/integration/indexes_spec.rb'
55
+
56
+ # Offense count: 1
57
+ # This cop supports safe autocorrection (--autocorrect).
58
+ # Configuration parameters: AllowDoxygenCommentStyle, AllowGemfileRubyComment.
59
+ Layout/LeadingCommentSpace:
60
+ Exclude:
61
+ - 'lib/active_record/connection_adapters/for_alter.rb'
62
+
63
+ # Offense count: 2
64
+ # This cop supports safe autocorrection (--autocorrect).
65
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
66
+ # SupportedStyles: space, no_space, compact
67
+ # SupportedStylesForEmptyBraces: space, no_space
68
+ Layout/SpaceInsideHashLiteralBraces:
69
+ Exclude:
70
+ - 'spec/active_record/connection_adapters/percona_adapter_spec.rb'
71
+
72
+ # Offense count: 9
73
+ # Configuration parameters: AllowedMethods.
74
+ # AllowedMethods: enums
75
+ Lint/ConstantDefinitionInBlock:
76
+ Exclude:
77
+ - 'spec/integration/change_table_spec.rb'
78
+ - 'spec/integration/columns_spec.rb'
79
+ - 'spec/integration/data_migrations_spec.rb'
80
+ - 'spec/integration/foreign_keys_spec.rb'
81
+ - 'spec/integration/indexes_spec.rb'
82
+ - 'spec/integration/references_spec.rb'
83
+ - 'spec/integration/tables_spec.rb'
84
+ - 'spec/integration_spec.rb'
85
+ - 'spec/lhm_integration_spec.rb'
86
+
87
+ # Offense count: 2
88
+ # This cop supports safe autocorrection (--autocorrect).
89
+ Lint/RedundantCopDisableDirective:
90
+ Exclude:
91
+ - 'lib/active_record/connection_adapters/percona_adapter.rb'
92
+ - 'lib/departure/command.rb'
93
+
94
+ # Offense count: 1
95
+ # This cop supports safe autocorrection (--autocorrect).
96
+ Lint/SendWithMixinArgument:
97
+ Exclude:
98
+ - 'spec/spec_helper.rb'
99
+
100
+ # Offense count: 2
101
+ # This cop supports safe autocorrection (--autocorrect).
102
+ # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods.
103
+ Lint/UnusedMethodArgument:
104
+ Exclude:
105
+ - 'lib/active_record/connection_adapters/for_alter.rb'
106
+ - 'spec/spec_helper.rb'
107
+
108
+ # Offense count: 1
109
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
110
+ # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
111
+ Naming/MethodParameterName:
112
+ Exclude:
113
+ - 'lib/active_record/connection_adapters/percona_adapter.rb'
114
+
115
+ # Offense count: 1
116
+ # This cop supports unsafe autocorrection (--autocorrect-all).
117
+ Security/YAMLLoad:
118
+ Exclude:
119
+ - 'configuration.rb'
120
+
121
+ # Offense count: 1
122
+ # This cop supports unsafe autocorrection (--autocorrect-all).
123
+ # Configuration parameters: EnforcedStyle, AllowModifiersOnSymbols.
124
+ # SupportedStyles: inline, group
125
+ Style/AccessModifierDeclarations:
126
+ Exclude:
127
+ - 'lib/departure/migration.rb'
128
+
129
+ # Offense count: 1
130
+ # This cop supports safe autocorrection (--autocorrect).
131
+ # Configuration parameters: EnforcedStyle.
132
+ # SupportedStyles: compact, expanded
133
+ Style/EmptyMethod:
134
+ Exclude:
135
+ - 'spec/fixtures/migrate/0029_disable_departure.rb'
136
+
137
+ # Offense count: 1
138
+ # This cop supports safe autocorrection (--autocorrect).
139
+ Style/Encoding:
140
+ Exclude:
141
+ - 'departure.gemspec'
142
+
143
+ # Offense count: 4
144
+ # This cop supports safe autocorrection (--autocorrect).
145
+ Style/ExpandPathArguments:
146
+ Exclude:
147
+ - 'departure.gemspec'
148
+ - 'spec/lhm_integration_spec.rb'
149
+ - 'spec/spec_helper.rb'
150
+
151
+ # Offense count: 2
152
+ # This cop supports unsafe autocorrection (--autocorrect-all).
153
+ Style/GlobalStdStream:
154
+ Exclude:
155
+ - 'lib/active_record/connection_adapters/for_alter.rb'
156
+ - 'spec/spec_helper.rb'
157
+
158
+ # Offense count: 2
159
+ # This cop supports safe autocorrection (--autocorrect).
160
+ Style/IfUnlessModifier:
161
+ Exclude:
162
+ - 'lib/active_record/connection_adapters/percona_adapter.rb'
163
+ - 'lib/departure/connection_details.rb'
164
+
165
+ # Offense count: 1
166
+ # This cop supports unsafe autocorrection (--autocorrect-all).
167
+ # Configuration parameters: EnforcedStyle.
168
+ # SupportedStyles: literals, strict
169
+ Style/MutableConstant:
170
+ Exclude:
171
+ - 'lib/departure/alter_argument.rb'
172
+
173
+ # Offense count: 2
174
+ # Configuration parameters: AllowedMethods.
175
+ # AllowedMethods: respond_to_missing?
176
+ Style/OptionalBooleanParameter:
177
+ Exclude:
178
+ - 'lib/departure/logger.rb'
179
+ - 'lib/departure/null_logger.rb'
180
+
181
+ # Offense count: 1
182
+ # This cop supports safe autocorrection (--autocorrect).
183
+ Style/RedundantConditional:
184
+ Exclude:
185
+ - 'lib/lhm/column_with_sql.rb'
186
+
187
+ # Offense count: 1
188
+ # This cop supports unsafe autocorrection (--autocorrect-all).
189
+ Style/RedundantInterpolation:
190
+ Exclude:
191
+ - 'spec/active_record/connection_adapters/percona_adapter_spec.rb'
192
+
193
+ # Offense count: 1
194
+ # This cop supports safe autocorrection (--autocorrect).
195
+ Style/RedundantRegexpCharacterClass:
196
+ Exclude:
197
+ - 'lib/departure/alter_argument.rb'
198
+
199
+ # Offense count: 1
200
+ # This cop supports safe autocorrection (--autocorrect).
201
+ Style/StderrPuts:
202
+ Exclude:
203
+ - 'lib/active_record/connection_adapters/for_alter.rb'
204
+
205
+ # Offense count: 1
206
+ # This cop supports unsafe autocorrection (--autocorrect-all).
207
+ # Configuration parameters: Mode.
208
+ Style/StringConcatenation:
209
+ Exclude:
210
+ - 'lib/departure/dsn.rb'
211
+
212
+ # Offense count: 12
213
+ # This cop supports safe autocorrection (--autocorrect).
214
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
215
+ # SupportedStyles: single_quotes, double_quotes
216
+ Style/StringLiterals:
217
+ Exclude:
218
+ - 'spec/active_record/connection_adapters/percona_adapter_spec.rb'
219
+ - 'spec/fixtures/migrate/0030_data_migration_with_upsert_all.rb'
220
+ - 'spec/integration/data_migrations_spec.rb'
221
+ - 'spec/integration/foreign_keys_spec.rb'
222
+ - 'spec/lhm/column_with_sql_spec.rb'
223
+
224
+ # Offense count: 1
225
+ # This cop supports safe autocorrection (--autocorrect).
226
+ # Configuration parameters: EnforcedStyleForMultiline.
227
+ # SupportedStylesForMultiline: comma, consistent_comma, no_comma
228
+ Style/TrailingCommaInArguments:
229
+ Exclude:
230
+ - 'spec/departure/runner_spec.rb'
231
+
232
+ # Offense count: 1
233
+ # This cop supports safe autocorrection (--autocorrect).
234
+ # Configuration parameters: EnforcedStyleForMultiline.
235
+ # SupportedStylesForMultiline: comma, consistent_comma, no_comma
236
+ Style/TrailingCommaInArrayLiteral:
237
+ Exclude:
238
+ - 'spec/integration/data_migrations_spec.rb'
@@ -0,0 +1,5 @@
1
+ class AddDeletedReasonToNewsfeedActivities < ActiveRecord::Migration[7.1]
2
+ def change
3
+ add_column :newsfeed_activities, :some_deleted_reason, :string
4
+ end
5
+ end
data/Appraisals ADDED
@@ -0,0 +1,15 @@
1
+ appraise 'rails-6-1' do
2
+ gem 'rails', '6.1.7.6'
3
+ end
4
+
5
+ appraise 'rails-7-0' do
6
+ gem 'rails', '7.0.8'
7
+ end
8
+
9
+ appraise 'rails-7-1' do
10
+ gem 'rails', '7.1.3'
11
+ end
12
+
13
+ appraise 'rails-7-2' do
14
+ gem 'rails', '7.2.2.1'
15
+ end
data/CHANGELOG.md ADDED
@@ -0,0 +1,224 @@
1
+ # Change Log
2
+ All notable changes to this project will be documented in this file.
3
+ This project adheres to [Semantic Versioning](http://semver.org/).
4
+
5
+ Please follow the format in [Keep a Changelog](http://keepachangelog.com/)
6
+
7
+ ## [Unreleased]
8
+
9
+ - Drop Ruby 3.0 support in specs
10
+ - Create dummy application in specs, migrate fixtures to that application
11
+ - Create a `bin/rails` command that loads the database from the dummy application
12
+ - Create a RailsAdapter that will handle creating connections inside of different versions of rails
13
+ - Implement a Rails72DeparatureAdapater that handles the differences between Rails 7.2 and other rails versions
14
+
15
+ ## [6.7.0] - 2024-02-20
16
+
17
+ - Flex mysql2 dependency to < 0.6 and bump version to 0.5.6
18
+ - Drop support for older than the latest EOL Ruby (2.7) and Rails (6.0)
19
+
20
+ ## [6.6.0] - 2024-01-02
21
+
22
+ - Fix support for Rails 6.0 and ForAlter `remove_index` .
23
+ - Support Rails 7.1.2
24
+
25
+ ## [6.5.0] - 2023-01-24
26
+
27
+ - Support mysql gem version 0.5.5
28
+ - Support for connection to MySQL server over socket
29
+ - Support appending items to the general DSN. Used to apply workaround for [PT-2126](https://jira.percona.com/browse/PT-2126)
30
+
31
+ ## [6.4.0] - 2022-08-24
32
+
33
+ - Support for ActiveRecord 6.1.4
34
+ - Relax mysql2 requirement to allow mysql2 0.5.4
35
+ - Support Rails 6' #upsert_all
36
+
37
+ ## [6.3.0] - 2020-06-23
38
+
39
+ - Support for ActiveRecord 6.1
40
+
41
+ ## [6.2.0] - 2020-06-23
42
+
43
+ ### Added
44
+
45
+ - Support for ActiveRecord 6.0
46
+ - Support for ActiveRecord 5.2
47
+ - Relax mysql2 requirement to allow mysql2 0.5.3
48
+ - Support to batch multiple changes at once with #change_table
49
+ - Support for connection to MySQL server over SSL
50
+
51
+ ### Changed
52
+
53
+ - Depend only in railties and activerecord instead of rails gem
54
+
55
+ ### Deprecated
56
+ ### Removed
57
+ ### Fixed
58
+
59
+ - Fix support for removing foreign keys
60
+ - Fix PERCONA_ARGS syntax for critical-load option
61
+ - Make sure quotes in ALTER TABLE get correctly escaped
62
+ - Fixes for regex handling
63
+ - Fix LHM compatibility
64
+
65
+ ## [6.1.0] - 2018-02-27
66
+
67
+ ### Added
68
+ ### Changed
69
+
70
+ - Permit PERCONA_ARGS to be applied to db:migrate tasks
71
+
72
+ ### Deprecated
73
+ ### Removed
74
+ ### Fixed
75
+
76
+ - Output lines are no longer wrapped at 8 chars
77
+
78
+ ## [6.0.0] - 2017-09-25
79
+
80
+ ### Added
81
+
82
+ - Support for ActiveRecord 5.1
83
+
84
+ ### Changed
85
+ ### Deprecated
86
+ ### Removed
87
+ ### Fixed
88
+
89
+ ## [5.0.0] - 2017-09-19
90
+
91
+ ### Added
92
+
93
+ - Support for ActiveRecord 5.0
94
+ - Docker setup to run the spec suite
95
+
96
+ ### Changed
97
+ ### Deprecated
98
+ ### Removed
99
+ ### Fixed
100
+
101
+ - Allow using bash special characters in passwords
102
+
103
+ ## [4.0.1] - 2017-08-01
104
+
105
+ ### Added
106
+
107
+ - Support for all pt-osc command-line options, including short forms and array
108
+ arguments
109
+
110
+ ### Changed
111
+ ### Deprecated
112
+ ### Removed
113
+ ### Fixed
114
+
115
+ ## [4.0.0] - 2017-06-12
116
+
117
+ ### Added
118
+ ### Changed
119
+
120
+ - Rename the gem from percona_migrator to departure.
121
+
122
+ ### Deprecated
123
+ ### Removed
124
+
125
+ - Percona_migrator's deprecation warnings when installing and running the gem.
126
+
127
+ ### Fixed
128
+
129
+ ## [3.0.0] - 2016-04-07
130
+
131
+ ### Added
132
+
133
+ - Support for ActiveRecord 4.2.x
134
+ - Support for Mysql2 4.x
135
+ - Allow passing any `pt-online-schema-change`'s arguments through the
136
+ `PERCONA_ARGS` env var when executing a migration with `rake db:migrate:up`
137
+ or `db:migrate:down`.
138
+ - Allow setting global percona arguments via gem configuration
139
+ - Filter MySQL's password from logs
140
+
141
+ ### Changed
142
+
143
+ - Enable default pt-online-schema-change replicas discovering mechanism.
144
+ So far, this was purposely set to `none`. To keep this same behaviour
145
+ provide the `PERCONA_ARGS=--recursion-method=none` env var when running the
146
+ migration.
147
+
148
+ ## [1.0.0] - 2016-11-30
149
+
150
+ ### Added
151
+
152
+ - Show pt-online-schema-change's stdout while the migration is running instead
153
+ of at then and all at once.
154
+ - Store pt-online-schema-change's stderr to percona_migrator_error.log in the
155
+ default Rails tmp folder.
156
+ - Allow configuring the tmp directory where the error log gets written into,
157
+ with the `tmp_path` configuration setting.
158
+ - Support for ActiveRecord 4.0. Adds the following migration methods:
159
+ - #rename_index, #change_column_null, #add_reference, #remove_reference,
160
+ #set_field_encoding, #add_timestamps, #remove_timestamps, #rename_table,
161
+ #rename_column
162
+
163
+ ## [0.1.0.rc.7] - 2016-09-15
164
+
165
+ ### Added
166
+
167
+ - Toggle pt-online-schema-change's output as well when toggling the migration's
168
+ verbose option.
169
+
170
+ ### Changed
171
+
172
+ - Enabled pt-online-schema-change's output while running the migration, that got
173
+ broken in v0.1.0.rc.2
174
+
175
+ ## [0.1.0.rc.6] - 2016-04-07
176
+
177
+ ### Added
178
+
179
+ - Support non-ddl migrations by implementing the methods for the ActiveRecord
180
+ quering to work.
181
+
182
+ ### Changed
183
+
184
+ - Refactor the PerconaAdapter to use the Runner as connection client, as all the
185
+ other adapters.
186
+
187
+ ## [0.1.0.rc.5] - 2016-03-29
188
+
189
+ ### Changed
190
+
191
+ - Raise a ActiveRecord::StatementInvalid on failed migration. It also provides
192
+ more detailed error message when possible such as pt-onlin-schema-change
193
+ being missing.
194
+
195
+ ## [0.1.0.rc.4] - 2016-03-15
196
+
197
+ ### Added
198
+
199
+ - Support #drop_table
200
+ - Support for foreing keys in db/schema.rb when using [Foreigner
201
+ gem](https://github.com/matthuhiggins/foreigner) in Rails 3 apps. This allows to
202
+ define foreign keys with #execute, but does not provide support for
203
+ add_foreign_key yet.
204
+
205
+ ## [0.1.0.rc.3] - 2016-03-10
206
+
207
+ ### Added
208
+
209
+ - Support #execute. Allows to execute raw SQL from the migration
210
+
211
+ ## [0.1.0.rc.2] - 2016-03-09
212
+
213
+ ### Added
214
+
215
+ - VERBOSE env var in tests. Specially useful for integration tests.
216
+ - Fix #create_table migration method. Now it does create the table.
217
+
218
+ ### Changed
219
+
220
+ - Use ActiveRecord's logger instead of specifying one in the connection data.
221
+
222
+ ## [0.1.0.rc.1] - 2016-03-01
223
+
224
+ - Initial gem version
@@ -0,0 +1,50 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, and in the interest of
4
+ fostering an open and welcoming community, we pledge to respect all people who
5
+ contribute through reporting issues, posting feature requests, updating
6
+ documentation, submitting pull requests or patches, and other activities.
7
+
8
+ We are committed to making participation in this project a harassment-free
9
+ experience for everyone, regardless of level of experience, gender, gender
10
+ identity and expression, sexual orientation, disability, personal appearance,
11
+ body size, race, ethnicity, age, religion, or nationality.
12
+
13
+ Examples of unacceptable behavior by participants include:
14
+
15
+ * The use of sexualized language or imagery
16
+ * Personal attacks
17
+ * Trolling or insulting/derogatory comments
18
+ * Public or private harassment
19
+ * Publishing other's private information, such as physical or electronic
20
+ addresses, without explicit permission
21
+ * Other unethical or unprofessional conduct
22
+
23
+ Project maintainers have the right and responsibility to remove, edit, or
24
+ reject comments, commits, code, wiki edits, issues, and other contributions
25
+ that are not aligned to this Code of Conduct, or to ban temporarily or
26
+ permanently any contributor for other behaviors that they deem inappropriate,
27
+ threatening, offensive, or harmful.
28
+
29
+ By adopting this Code of Conduct, project maintainers commit themselves to
30
+ fairly and consistently applying these principles to every aspect of managing
31
+ this project. Project maintainers who do not follow or enforce the Code of
32
+ Conduct may be permanently removed from the project team.
33
+
34
+ This Code of Conduct applies both within project spaces and in public spaces
35
+ when an individual is representing the project or its community.
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
38
+ reported by contacting a project maintainer at accounts@redbooth.com. All
39
+ complaints will be reviewed and investigated and will result in a response that
40
+ is deemed necessary and appropriate to the circumstances. Maintainers are
41
+ obligated to maintain confidentiality with regard to the reporter of an
42
+ incident.
43
+
44
+
45
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
46
+ version 1.3.0, available at
47
+ [http://contributor-covenant.org/version/1/3/0/][version]
48
+
49
+ [homepage]: http://contributor-covenant.org
50
+ [version]: http://contributor-covenant.org/version/1/3/0/