tapsoob 0.8.3 → 0.8.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 +4 -4
- data/lib/tapsoob/schema.rb +4 -0
- data/lib/tapsoob/version.rb +1 -1
- data/spec/integration/postgres_spec.rb +19 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 30cfe2b3b3f3c8e9daa9283eec5d3a3cdf6e6a689a60d21d8e4ad3306740a9aa
|
|
4
|
+
data.tar.gz: 3980451f8e14dd52c7fbf22de83cacf32ebc57de19c8c704a261575c5e92adb4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: baf8a2278be1d5499ad64a4ef89be355f7cc3e82f3efd759c51c254cc3e28567955fce8b6f5e4025bf451a08f8cf0fe7e236c09e536f6e09ffd71875eb276246
|
|
7
|
+
data.tar.gz: 20ae520ae8daa165509b91f3b448268b2a3927f2285e422a2540b5eab75d3b66839aad441b90c58c0b8e83edd43004c27921c41bdcf9c80088e8745f5892d523
|
data/lib/tapsoob/schema.rb
CHANGED
|
@@ -162,6 +162,10 @@ END_MIG
|
|
|
162
162
|
db.extension :schema_dumper
|
|
163
163
|
return unless db.respond_to?(:reset_primary_key_sequence)
|
|
164
164
|
db.tables.each do |table|
|
|
165
|
+
pk = db.primary_key(table)
|
|
166
|
+
next unless pk
|
|
167
|
+
pk_type = db.schema(table).find { |col, _| col.to_s == pk.to_s }&.last&.dig(:db_type)
|
|
168
|
+
next unless pk_type&.match?(/int|serial/i)
|
|
165
169
|
db.reset_primary_key_sequence(table)
|
|
166
170
|
end
|
|
167
171
|
end
|
data/lib/tapsoob/version.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
+
require 'tapsoob/schema'
|
|
2
3
|
|
|
3
4
|
# PostgreSQL integration suite.
|
|
4
5
|
# In CI: supplied by the postgres service container via POSTGRES_* env vars.
|
|
@@ -94,4 +95,22 @@ RSpec.describe 'PostgreSQL round-trip', :integration do
|
|
|
94
95
|
expect_same_counts(src_db, dst_db)
|
|
95
96
|
end
|
|
96
97
|
end
|
|
98
|
+
|
|
99
|
+
context 'with a varchar primary key table' do
|
|
100
|
+
before(:each) do
|
|
101
|
+
@src_db.run("DROP TABLE IF EXISTS varchar_pk_table")
|
|
102
|
+
@src_db.run("CREATE TABLE varchar_pk_table (id varchar(36) PRIMARY KEY, label text)")
|
|
103
|
+
@src_db.run("INSERT INTO varchar_pk_table VALUES ('abc-123', 'test')")
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
after(:each) do
|
|
107
|
+
@src_db.run("DROP TABLE IF EXISTS varchar_pk_table")
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
it 'reset_db_sequences does not raise on a varchar primary key' do
|
|
111
|
+
expect {
|
|
112
|
+
Tapsoob::Schema.reset_db_sequences(@src_url)
|
|
113
|
+
}.not_to raise_error
|
|
114
|
+
end
|
|
115
|
+
end
|
|
97
116
|
end
|