Skip to content

Commit 649d29a

Browse files
authored
Exclude tables created by extensions (#120)
* Quote table name in the `VACUUM` SQL * Exclude tables created by extensions * Add spec to ensure special tables are ignored
1 parent 5825f4f commit 649d29a

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

lib/pg_easy_replicate/helper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def determine_tables(conn_string:, list: "", schema: nil)
8080
if tables.size > 0
8181
tables
8282
else
83-
list_all_tables(schema: schema, conn_string: conn_string)
83+
list_all_tables(schema: schema, conn_string: conn_string) - %w[ spatial_ref_sys ]
8484
end
8585
end
8686

spec/database_helpers.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,17 @@ def setup(connection_url, user = "james-bond")
137137
index(:id)
138138
end
139139
end
140+
141+
unless conn.table_exists?("spatial_ref_sys")
142+
conn.create_table("spatial_ref_sys") do
143+
primary_key(:id)
144+
column(:name, String)
145+
column(:last_purchase_at, Time)
146+
foreign_key(:seller_id, :sellers, on_delete: :cascade)
147+
index(:seller_id)
148+
index(:id)
149+
end
150+
end
140151
ensure
141152
conn&.disconnect
142153
end

spec/pg_easy_replicate/orchestrate_spec.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,16 @@
7373
end
7474

7575
it "succesfully for all tables" do
76+
tables = described_class.determine_tables(
77+
schema: test_schema,
78+
conn_string: connection_url,
79+
)
80+
7681
described_class.add_tables_to_publication(
7782
group_name: "cluster1",
7883
schema: test_schema,
7984
conn_string: connection_url,
80-
tables: %w[items sellers],
85+
tables: tables,
8186
)
8287

8388
expect(pg_publication_tables(connection_url: connection_url)).to eq(
@@ -133,7 +138,7 @@
133138
schema: test_schema,
134139
conn_string: connection_url,
135140
)
136-
expect(r.sort).to eq(%w[items sellers])
141+
expect(r.sort).to eq(%w[items sellers spatial_ref_sys])
137142
end
138143
end
139144

0 commit comments

Comments
 (0)