lhm-shopify 4.1.1 → 4.2.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/.github/workflows/test.yml +5 -0
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +2 -2
- data/gemfiles/activerecord_6.1.gemfile.lock +2 -2
- data/gemfiles/activerecord_7.0.gemfile.lock +2 -2
- data/gemfiles/activerecord_7.1.gemfile.lock +2 -2
- data/lib/lhm/migrator.rb +5 -1
- data/lib/lhm/sql_retry.rb +15 -2
- data/lib/lhm/version.rb +1 -1
- data/spec/unit/migrator_spec.rb +16 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dec22d00a0a019706b1a6d62e85e416caf210aa2d0b4f77bb3ccf562f1db8fb2
|
4
|
+
data.tar.gz: 181acf59e61b100dc3320b6674a7cd13a2a1dcf767c7259a88a58dbf4b826bf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c197de7b7658cdb9c31dd91adde7fdaf54505bc7e910812d8c80edf447f6266630c08a80d773391071c518f72b9527280e1ece7e2bdc00bc60d5a8c22f294ed
|
7
|
+
data.tar.gz: 6f1f7da4e1bd2e61fb8921eb9e724408d01ee576d98eb8ba393c2c2dada846368ec2a187e5c61d77f3691290edc815addd0e93acb8e1fa065c206564243ef798
|
data/.github/workflows/test.yml
CHANGED
@@ -18,6 +18,11 @@ jobs:
|
|
18
18
|
ruby: ["3.0", "3.1", "3.2", "head"]
|
19
19
|
mysql: ["5.7", "8.0"]
|
20
20
|
adapter: ["mysql2", "trilogy"]
|
21
|
+
exclude:
|
22
|
+
- activerecord: 6.1
|
23
|
+
ruby: head
|
24
|
+
- activerecord: 7.0
|
25
|
+
ruby: head
|
21
26
|
|
22
27
|
env:
|
23
28
|
BUNDLE_GEMFILE: "${{ github.workspace }}/gemfiles/activerecord_${{ matrix.activerecord }}.gemfile"
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
lhm-shopify (4.
|
4
|
+
lhm-shopify (4.2.1)
|
5
5
|
retriable (>= 3.0.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -38,7 +38,7 @@ GEM
|
|
38
38
|
ruby2_keywords
|
39
39
|
i18n (1.14.1)
|
40
40
|
concurrent-ruby (~> 1.0)
|
41
|
-
minitest (5.
|
41
|
+
minitest (5.22.2)
|
42
42
|
mocha (2.1.0)
|
43
43
|
ruby2_keywords (>= 0.0.5)
|
44
44
|
mutex_m (0.1.2)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
lhm-shopify (4.
|
4
|
+
lhm-shopify (4.2.1)
|
5
5
|
retriable (>= 3.0.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -31,7 +31,7 @@ GEM
|
|
31
31
|
docile (1.4.0)
|
32
32
|
i18n (1.14.1)
|
33
33
|
concurrent-ruby (~> 1.0)
|
34
|
-
minitest (5.
|
34
|
+
minitest (5.22.2)
|
35
35
|
mocha (2.1.0)
|
36
36
|
ruby2_keywords (>= 0.0.5)
|
37
37
|
mysql2 (0.5.5)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
lhm-shopify (4.
|
4
|
+
lhm-shopify (4.2.1)
|
5
5
|
retriable (>= 3.0.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -30,7 +30,7 @@ GEM
|
|
30
30
|
docile (1.4.0)
|
31
31
|
i18n (1.14.1)
|
32
32
|
concurrent-ruby (~> 1.0)
|
33
|
-
minitest (5.
|
33
|
+
minitest (5.22.2)
|
34
34
|
mocha (2.1.0)
|
35
35
|
ruby2_keywords (>= 0.0.5)
|
36
36
|
mysql2 (0.5.5)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
lhm-shopify (4.
|
4
|
+
lhm-shopify (4.2.1)
|
5
5
|
retriable (>= 3.0.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -38,7 +38,7 @@ GEM
|
|
38
38
|
ruby2_keywords
|
39
39
|
i18n (1.14.1)
|
40
40
|
concurrent-ruby (~> 1.0)
|
41
|
-
minitest (5.
|
41
|
+
minitest (5.22.2)
|
42
42
|
mocha (2.1.0)
|
43
43
|
ruby2_keywords (>= 0.0.5)
|
44
44
|
mutex_m (0.1.2)
|
data/lib/lhm/migrator.rb
CHANGED
@@ -67,7 +67,11 @@ module Lhm
|
|
67
67
|
# @param [String] name Name of the column to change
|
68
68
|
# @param [String] definition Valid SQL column definition
|
69
69
|
def change_column(name, definition)
|
70
|
-
|
70
|
+
if definition.match?(/^(DROP|SET) DEFAULT/i)
|
71
|
+
ddl('alter table `%s` alter column `%s` %s' % [@name, name, definition])
|
72
|
+
else
|
73
|
+
ddl('alter table `%s` modify column `%s` %s' % [@name, name, definition])
|
74
|
+
end
|
71
75
|
end
|
72
76
|
|
73
77
|
# Rename an existing column.
|
data/lib/lhm/sql_retry.rb
CHANGED
@@ -186,13 +186,26 @@ module Lhm
|
|
186
186
|
def retriable_trilogy_errors
|
187
187
|
return unless defined?(Trilogy::BaseError)
|
188
188
|
|
189
|
-
{
|
189
|
+
errors = {
|
190
190
|
ActiveRecord::StatementInvalid => [
|
191
|
-
# Those sometimes appear as Trilogy::TimeoutError, and sometimes as ActiveRecord::StatementInvalid
|
192
191
|
/Lock wait timeout exceeded/,
|
192
|
+
/Timeout waiting for a response from the last query/,
|
193
|
+
/Deadlock found when trying to get lock/,
|
194
|
+
/Query execution was interrupted/,
|
195
|
+
/Lost connection to MySQL server during query/,
|
196
|
+
/Max connect timeout reached/,
|
197
|
+
/Unknown MySQL server host/,
|
198
|
+
/connection is locked to hostgroup/,
|
199
|
+
/The MySQL server is running with the --read-only option so it cannot execute this statement/,
|
193
200
|
],
|
194
201
|
Trilogy::ConnectionError => nil,
|
195
202
|
}
|
203
|
+
|
204
|
+
if ActiveRecord::VERSION::STRING >= "7.1"
|
205
|
+
errors[ActiveRecord::ConnectionFailed] = nil
|
206
|
+
end
|
207
|
+
|
208
|
+
errors
|
196
209
|
end
|
197
210
|
end
|
198
211
|
end
|
data/lib/lhm/version.rb
CHANGED
data/spec/unit/migrator_spec.rb
CHANGED
@@ -116,6 +116,22 @@ describe Lhm::Migrator do
|
|
116
116
|
'alter table `lhmn_alt` modify column `logins` INT(11)'
|
117
117
|
])
|
118
118
|
end
|
119
|
+
|
120
|
+
it "should drop a default" do
|
121
|
+
@creator.change_column('foo', 'DROP DEFAULT')
|
122
|
+
|
123
|
+
value(@creator.statements).must_equal([
|
124
|
+
'alter table `lhmn_alt` alter column `foo` DROP DEFAULT'
|
125
|
+
])
|
126
|
+
end
|
127
|
+
|
128
|
+
it "should set a default" do
|
129
|
+
@creator.change_column('foo', "SET DEFAULT 'bar'")
|
130
|
+
|
131
|
+
value(@creator.statements).must_equal([
|
132
|
+
"alter table `lhmn_alt` alter column `foo` SET DEFAULT 'bar'"
|
133
|
+
])
|
134
|
+
end
|
119
135
|
end
|
120
136
|
|
121
137
|
describe 'direct changes' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lhm-shopify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SoundCloud
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2024-03-11 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: retriable
|
@@ -320,7 +320,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
320
320
|
- !ruby/object:Gem::Version
|
321
321
|
version: '0'
|
322
322
|
requirements: []
|
323
|
-
rubygems_version: 3.
|
323
|
+
rubygems_version: 3.5.6
|
324
324
|
signing_key:
|
325
325
|
specification_version: 4
|
326
326
|
summary: online schema changer for mysql
|