que-schema 0.1.3 → 0.1.4

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: 2dd48b725a6da899c882691afa3af22e3b4e1a6a5253f69eded20bbfe52c59e7
4
- data.tar.gz: 8f2fdde04cebaa445a54b7281674257a414de7a1ad26077f61a6c85db481b3b0
3
+ metadata.gz: 539498be1f604e4c6c861625da853bc839f9180568e3711a80bba9d7eb307a74
4
+ data.tar.gz: e5af896433efb7f6f91eb5cafc09012286307b67b56b5ab186452a12437d05ef
5
5
  SHA512:
6
- metadata.gz: 26cb3c0d957a76c85d7d66cc66f4c72f1dd9c0244e1a58626ab309f658381451e044daf49364b775dfa5e9696c6eb9b06fe9baf0b27295c1d354fa6408f18d35
7
- data.tar.gz: c41c48b31d14db35ea739c888c5dd424f19f1d4f24a2dbd4778ac97144f8482e178b3f7e86384304df84f2e975b1831ba621b5d3d23447a46fca971a6784bcab
6
+ metadata.gz: 14ee67ec7ef19298088ea7ca10a3282dbf466f226acab5852308ae56c18f63e0ea32c035cc5333840e38729e2b2bed5459043198f1ba1f3742829118048f470b
7
+ data.tar.gz: adbc82bcb5fa30c7a10419920c1a98ee4cb045a603710c91a9384b6c7cb88a23c52784d11476c77a80c6a7361bb4fe2de5cfdcd5aa6debb2d00d207aca299b14
data/CHANGELOG.md CHANGED
@@ -2,22 +2,14 @@
2
2
 
3
3
 
4
4
 
5
- ## [0.1.3] - 2026-04-01
5
+ ## [0.1.4] - 2026-04-01
6
6
 
7
- ### Added
7
+ ### Fixed
8
8
 
9
- - Automatic que-scheduler schema management when que-scheduler gem is present (2bf5b3b)
9
+ - Foreign keys between Que-managed tables appearing in schema.rb (860ae38)
10
10
 
11
- ## [0.1.2] - 2026-03-09
11
+ ## [0.1.3] - 2026-04-01
12
12
 
13
13
  ### Added
14
14
 
15
- - Suppress Que-managed functions and triggers in schema dump (629c074)
16
-
17
- ### Fixed
18
-
19
- - Duplicate trigger errors during db:schema:load (629c074)
20
-
21
- ### Changed
22
-
23
- - SchemaDumper prepend timing for correct ancestor order (629c074)
15
+ - Automatic que-scheduler schema management when que-scheduler gem is present (2bf5b3b)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- que-schema (0.1.3)
4
+ que-schema (0.1.4)
5
5
  activerecord (>= 6.0)
6
6
  que
7
7
  railties (>= 6.0)
@@ -97,6 +97,14 @@ module QueSchema
97
97
  false
98
98
  end
99
99
 
100
+ # Suppress foreign keys between Que-managed tables —
101
+ # Que.migrate! / scheduler migrations recreate them.
102
+ def foreign_keys(table, stream)
103
+ return if postgresql? && que_table?(table.to_s)
104
+
105
+ super
106
+ end
107
+
100
108
  # Override Fx::SchemaDumper methods to filter out
101
109
  # Que-managed objects when Fx is present.
102
110
  def functions(stream)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module QueSchema
4
- VERSION = "0.1.3"
4
+ VERSION = "0.1.4"
5
5
  end
@@ -146,6 +146,26 @@ RSpec.describe QueSchema::SchemaDumper do
146
146
  end
147
147
  end
148
148
 
149
+ describe "#foreign_keys" do
150
+ context "when PostgreSQL" do
151
+ before { stub_postgresql! }
152
+
153
+ it "suppresses foreign keys on que_jobs" do
154
+ stream = StringIO.new
155
+ dumper.send(:foreign_keys, "que_jobs", stream)
156
+ expect(stream.string).to be_empty
157
+ end
158
+
159
+ it "passes app tables through to super" do
160
+ stream = StringIO.new
161
+ expect { dumper.send(:foreign_keys, "users", stream) }
162
+ .to raise_error(NoMethodError, /super/)
163
+ # Raises because the test double has no real superclass —
164
+ # confirms the method delegates rather than suppressing.
165
+ end
166
+ end
167
+ end
168
+
149
169
  describe "#que_function? (private)" do
150
170
  it "returns true for Que-managed functions" do
151
171
  %w[que_validate_tags que_determine_job_state que_job_notify que_state_notify].each do |name|
@@ -316,6 +336,22 @@ RSpec.describe QueSchema::SchemaDumper do
316
336
  expect(output).to include("my_app_trigger")
317
337
  end
318
338
  end
339
+
340
+ describe "#foreign_keys" do
341
+ before { stub_postgresql! }
342
+
343
+ it "suppresses foreign keys on que_scheduler tables" do
344
+ stream = StringIO.new
345
+ dumper.send(:foreign_keys, "que_scheduler_audit_enqueued", stream)
346
+ expect(stream.string).to be_empty
347
+ end
348
+
349
+ it "suppresses foreign keys on core que tables" do
350
+ stream = StringIO.new
351
+ dumper.send(:foreign_keys, "que_jobs", stream)
352
+ expect(stream.string).to be_empty
353
+ end
354
+ end
319
355
  end
320
356
 
321
357
  describe "#que_schema_version (private)" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: que-schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Gay