lhm-shopify 4.5.0 → 4.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56380d3c695085c3fdc5ea625014ad7a90948a0a227d9f543cfc23efc8ec9403
4
- data.tar.gz: b06d43bb5c314e15846ee46ed50acfe8a076069558b0fd8f94a620a574bd2a38
3
+ metadata.gz: f6810104b2e7de311501c58b38b5ab605bf808b2391e9406901dd97394ae29c2
4
+ data.tar.gz: 251bdd83425a0986d5d3cdded7fc05e4d53731eb86269a3059f2524780287b6e
5
5
  SHA512:
6
- metadata.gz: 0244a6df042163ed02c77dd37bfaa800ff99a8a5af518561694fb071eb630dafd73cc12146be38a41e1e02d1f5523f7ae9ebcbd90a9696ae267d2b1e5e425957
7
- data.tar.gz: 4fda241d6c7f516d96c679c1fee6bfdabc5c13e8e27baa95623406f0fb568294271fac81a836e3611b4f9d3243ef14fa7d433693603b3ae5056fdd7a31acc66c
6
+ metadata.gz: 866539e9bcac6acc7740766524d52e87de8572bde63d336b4dd1636c87da876d178729eaa5e716dafed53339c903ba79677980a0f29346c8ad36e0cebb145e7f
7
+ data.tar.gz: 0c7840100abf5b849e6750061f269fab888633bba7afd287cad3461e70e941f26f9a7a42fd215effa89797c7841c0b1200aab69d44d1119c79951ef53e8dee98
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Unreleased
2
2
 
3
+ # 4.5.1 (Jul, 2025)
4
+ * Create update before insert trigger
5
+
3
6
  # 4.5.0 (Feb, 2025)
4
7
  * Update test matrix to include Rails 8
5
8
  * Add option to force tables to use default engine
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lhm-shopify (4.5.0)
4
+ lhm-shopify (4.5.1)
5
5
  retriable (>= 3.0.0)
6
6
 
7
7
  GEM
data/dev.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  name: lhm
2
2
  up:
3
3
  - packages:
4
- - mysql-client@5.7
4
+ - mysql-client
5
5
  - wget
6
6
  - ruby
7
7
  - bundler
@@ -12,8 +12,9 @@ up:
12
12
  meet: ":"
13
13
  - custom:
14
14
  name: Podman compose
15
- met?: podman-compose ps | grep -ioE -q "lhm.*running\(4\)"
16
- meet: podman-compose up -d
15
+ met?: "[[ $(podman-compose ps | grep -c -e 'running' -e 'Up') == 4 ]] 2> /dev/null"
16
+ meet: podman-compose -f docker-compose-mysql-8.0.yml up -d
17
+ down: podman-compose down
17
18
  - custom:
18
19
  name: Waiting for DBs to be operational
19
20
  met?: ./scripts/helpers/wait-for-dbs.sh
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- lhm-shopify (4.5.0)
4
+ lhm-shopify (4.5.1)
5
5
  retriable (>= 3.0.0)
6
6
 
7
7
  GEM
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- lhm-shopify (4.5.0)
4
+ lhm-shopify (4.5.1)
5
5
  retriable (>= 3.0.0)
6
6
 
7
7
  GEM
@@ -26,7 +26,7 @@ GIT
26
26
  PATH
27
27
  remote: ..
28
28
  specs:
29
- lhm-shopify (4.5.0)
29
+ lhm-shopify (4.5.1)
30
30
  retriable (>= 3.0.0)
31
31
 
32
32
  GEM
data/lib/lhm/entangler.rb CHANGED
@@ -27,8 +27,8 @@ module Lhm
27
27
  def entangle
28
28
  [
29
29
  create_delete_trigger,
30
+ create_update_trigger,
30
31
  create_insert_trigger,
31
- create_update_trigger
32
32
  ]
33
33
  end
34
34
 
data/lib/lhm/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
  # Schmidt
3
3
 
4
4
  module Lhm
5
- VERSION = '4.5.0'
5
+ VERSION = '4.5.1'
6
6
  end
@@ -27,18 +27,18 @@ describe Lhm::Entangler do
27
27
  @destination.columns['tags'] = { :type => 'varchar(255)' }
28
28
  end
29
29
 
30
- it 'should create insert trigger to destination table' do
30
+ it 'should create the delete trigger to the destination table first' do
31
31
  ddl = %Q{
32
- create trigger `lhmt_ins_origin`
33
- after insert on `origin` for each row
34
- replace into `destination` (`info`, `tags`) /* large hadron migration */
35
- values (`NEW`.`info`, `NEW`.`tags`)
32
+ create trigger `lhmt_del_origin`
33
+ after delete on `origin` for each row
34
+ delete ignore from `destination` /* large hadron migration */
35
+ where `destination`.`id` = OLD.`id`
36
36
  }
37
37
 
38
- value(@entangler.entangle).must_include strip(ddl)
38
+ assert_equal strip(ddl), @entangler.entangle[0]
39
39
  end
40
40
 
41
- it 'should create an update trigger to the destination table' do
41
+ it 'should create the update trigger to the destination table second' do
42
42
  ddl = %Q{
43
43
  create trigger `lhmt_upd_origin`
44
44
  after update on `origin` for each row
@@ -46,18 +46,18 @@ describe Lhm::Entangler do
46
46
  values (`NEW`.`info`, `NEW`.`tags`)
47
47
  }
48
48
 
49
- value(@entangler.entangle).must_include strip(ddl)
49
+ assert_equal strip(ddl), @entangler.entangle[1]
50
50
  end
51
51
 
52
- it 'should create a delete trigger to the destination table' do
52
+ it 'should create the insert trigger to destination table last' do
53
53
  ddl = %Q{
54
- create trigger `lhmt_del_origin`
55
- after delete on `origin` for each row
56
- delete ignore from `destination` /* large hadron migration */
57
- where `destination`.`id` = OLD.`id`
54
+ create trigger `lhmt_ins_origin`
55
+ after insert on `origin` for each row
56
+ replace into `destination` (`info`, `tags`) /* large hadron migration */
57
+ values (`NEW`.`info`, `NEW`.`tags`)
58
58
  }
59
59
 
60
- value(@entangler.entangle).must_include strip(ddl)
60
+ assert_equal strip(ddl), @entangler.entangle[2]
61
61
  end
62
62
 
63
63
  it 'should retry trigger creation when it hits a lock wait timeout' 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.5.0
4
+ version: 4.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - SoundCloud
@@ -11,7 +11,7 @@ authors:
11
11
  - Tobias Schmidt
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2025-02-07 00:00:00.000000000 Z
14
+ date: 1980-01-02 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: retriable
@@ -352,7 +352,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
352
352
  - !ruby/object:Gem::Version
353
353
  version: '0'
354
354
  requirements: []
355
- rubygems_version: 3.6.3
355
+ rubygems_version: 3.6.9
356
356
  specification_version: 4
357
357
  summary: online schema changer for mysql
358
358
  test_files: []