tapsoob 0.8.2 → 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: 1b462af6073abaf47bcb13d46504696b4dfa6f7dc7dca762e050b9664b6a6da9
4
- data.tar.gz: e2e46b8b2d1f08cfe67a82c8c1ab542e39e801793142ad1a93ae6aaf63175790
3
+ metadata.gz: 30cfe2b3b3f3c8e9daa9283eec5d3a3cdf6e6a689a60d21d8e4ad3306740a9aa
4
+ data.tar.gz: 3980451f8e14dd52c7fbf22de83cacf32ebc57de19c8c704a261575c5e92adb4
5
5
  SHA512:
6
- metadata.gz: 3f26a3c56a9a824fbd855924fc59fd6abdf4b8ff0f8c44747ecfbc26316f77dca7d603e39fce09cda03f3c4eabeed6522da1c7a8e8f6baa3c95e277531120f35
7
- data.tar.gz: 0f22b48db14b094b3a93375ac9004f1f520537ce45918a7069a6e7141dfb437c4b0382c8376e1c52216d4407d83d15875adb1a11d6b9970bd333cf859167f179
6
+ metadata.gz: baf8a2278be1d5499ad64a4ef89be355f7cc3e82f3efd759c51c254cc3e28567955fce8b6f5e4025bf451a08f8cf0fe7e236c09e536f6e09ffd71875eb276246
7
+ data.tar.gz: 20ae520ae8daa165509b91f3b448268b2a3927f2285e422a2540b5eab75d3b66839aad441b90c58c0b8e83edd43004c27921c41bdcf9c80088e8745f5892d523
@@ -112,12 +112,14 @@ END_MIG
112
112
  if options[:drop]
113
113
  # Start special hack for MySQL
114
114
  db.run("SET foreign_key_checks = 0") if [:mysql, :mysql2].include?(db.adapter_scheme)
115
+ db.run("PRAGMA foreign_keys = OFF") if db.adapter_scheme == :sqlite
115
116
 
116
117
  # Run down migration
117
118
  klass.apply(db, :down)
118
119
 
119
120
  # End special hack for MySQL
120
121
  db.run("SET foreign_key_checks = 1") if [:mysql, :mysql2].include?(db.adapter_scheme)
122
+ db.run("PRAGMA foreign_keys = ON") if db.adapter_scheme == :sqlite
121
123
  end
122
124
  klass.apply(db, :up)
123
125
  else
@@ -127,12 +129,14 @@ END_MIG
127
129
  if options[:drop]
128
130
  # Start special hack for MySQL
129
131
  db.run("SET foreign_key_checks = 0") if [:mysql, :mysql2].include?(db.adapter_scheme)
132
+ db.run("PRAGMA foreign_keys = OFF") if db.adapter_scheme == :sqlite
130
133
 
131
134
  # Run down migration
132
135
  klass.apply(db, :down)
133
136
 
134
137
  # End special hack for MySQL
135
138
  db.run("SET foreign_key_checks = 1") if [:mysql, :mysql2].include?(db.adapter_scheme)
139
+ db.run("PRAGMA foreign_keys = ON") if db.adapter_scheme == :sqlite
136
140
  end
137
141
  klass.apply(db, :up)
138
142
  end
@@ -158,6 +162,10 @@ END_MIG
158
162
  db.extension :schema_dumper
159
163
  return unless db.respond_to?(:reset_primary_key_sequence)
160
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)
161
169
  db.reset_primary_key_sequence(table)
162
170
  end
163
171
  end
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module Tapsoob
3
- VERSION = "0.8.2".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.2
4
+ version: 0.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Félix Bellanger