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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a0fdb4596821c1247ddc3e3c8530389f4bea8f5fb9de06b26ed6a2c2b454e69
4
- data.tar.gz: 1b915563ac7c12021087409945d1b1ad0f451ce2f55d16ad2783cc45dd8b0e22
3
+ metadata.gz: 30cfe2b3b3f3c8e9daa9283eec5d3a3cdf6e6a689a60d21d8e4ad3306740a9aa
4
+ data.tar.gz: 3980451f8e14dd52c7fbf22de83cacf32ebc57de19c8c704a261575c5e92adb4
5
5
  SHA512:
6
- metadata.gz: bd6289dc4bc12fc2fefe130e31343eada9f335bc4374acd51a0d83fa755f01cfa4fd394b62f111e61c1594b069594b6e08ccf4383138dc1114eda044ed456ee7
7
- data.tar.gz: 955346a7e225032bf46429e878332757b0860f480ed07bab065d03634dedcb9fe54236beefe3a5f931ae3f8547aff4db322900b17ea75a8fd6e453b87a174424
6
+ metadata.gz: baf8a2278be1d5499ad64a4ef89be355f7cc3e82f3efd759c51c254cc3e28567955fce8b6f5e4025bf451a08f8cf0fe7e236c09e536f6e09ffd71875eb276246
7
+ data.tar.gz: 20ae520ae8daa165509b91f3b448268b2a3927f2285e422a2540b5eab75d3b66839aad441b90c58c0b8e83edd43004c27921c41bdcf9c80088e8745f5892d523
@@ -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
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module Tapsoob
3
- VERSION = "0.8.3".freeze
3
+ VERSION = "0.8.4".freeze
4
4
  end
@@ -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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tapsoob
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Félix Bellanger