Skip to content

Commit 95cca20

Browse files
committed
fix bug in non public schema in create_view
1 parent 2310aed commit 95cca20

File tree

5 files changed

+57
-40
lines changed

5 files changed

+57
-40
lines changed

pgsync/base.py

+9-2
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,10 @@ def create_view(self, schema, tables, user_defined_fkey_tables):
571571
rows[table_name]["foreign_keys"] |= set(columns)
572572

573573
if not rows:
574-
return
574+
rows.setdefault(
575+
None,
576+
{"primary_keys": set([]), "foreign_keys": set([])},
577+
)
575578

576579
statement = sa.select(
577580
Values(
@@ -612,7 +615,11 @@ def drop_view(self, schema):
612615
# Triggers...
613616
def create_triggers(self, schema, tables=None):
614617
"""Create a database triggers."""
615-
self.execute(CREATE_TRIGGER_TEMPLATE)
618+
self.execute(
619+
CREATE_TRIGGER_TEMPLATE.replace(
620+
MATERIALIZED_VIEW, f"{schema}.{MATERIALIZED_VIEW}"
621+
)
622+
)
616623
views = sa.inspect(self.engine).get_view_names(schema)
617624
queries = []
618625
for table in self.tables(schema):

pgsync/sync.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,8 @@ def setup(self):
172172

173173
root = self.tree.build(self.nodes)
174174
for node in traverse_breadth_first(root):
175+
if node.schema != schema:
176+
continue
175177
tables |= set(node.relationship.through_tables)
176178
tables |= set([node.table])
177179
# we want to get both the parent and the child keys here
@@ -186,8 +188,9 @@ def setup(self):
186188
if columns:
187189
user_defined_fkey_tables.setdefault(node.table, set([]))
188190
user_defined_fkey_tables[node.table] |= set(columns)
189-
self.create_triggers(schema, tables=tables)
190-
self.create_view(schema, tables, user_defined_fkey_tables)
191+
if tables:
192+
self.create_triggers(schema, tables=tables)
193+
self.create_view(schema, tables, user_defined_fkey_tables)
191194
self.create_replication_slot(self.__name)
192195

193196
def teardown(self, drop_view=True):

requirements/dev.txt

+17-15
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ attrs==21.2.0
1212
# via pytest
1313
black==21.5b1
1414
# via -r requirements/base.in
15-
boto3==1.17.73
15+
boto3==1.17.83
1616
# via -r requirements/base.in
17-
botocore==1.20.73
17+
botocore==1.20.83
1818
# via
1919
# boto3
2020
# s3transfer
@@ -26,11 +26,11 @@ certifi==2020.12.5
2626
# via
2727
# elasticsearch
2828
# requests
29-
cfgv==3.2.0
29+
cfgv==3.3.0
3030
# via pre-commit
3131
chardet==4.0.0
3232
# via requests
33-
click==8.0.0
33+
click==8.0.1
3434
# via
3535
# -r requirements/base.in
3636
# black
@@ -43,11 +43,11 @@ distlib==0.3.1
4343
# via virtualenv
4444
elasticsearch-dsl==7.3.0
4545
# via -r requirements/base.in
46-
elasticsearch==7.12.1
46+
elasticsearch==7.13.0
4747
# via elasticsearch-dsl
4848
environs==9.3.2
4949
# via -r requirements/base.in
50-
faker==8.1.4
50+
faker==8.4.0
5151
# via -r requirements/base.in
5252
filelock==3.0.12
5353
# via virtualenv
@@ -69,12 +69,13 @@ flake8==3.9.2
6969
# flake8-print
7070
greenlet==1.1.0
7171
# via sqlalchemy
72-
identify==2.2.4
72+
identify==2.2.6
7373
# via pre-commit
7474
idna==2.10
7575
# via requests
76-
importlib-metadata==4.0.1
76+
importlib-metadata==4.3.0
7777
# via
78+
# click
7879
# flake8
7980
# pep517
8081
# pluggy
@@ -94,7 +95,7 @@ mccabe==0.6.1
9495
# via flake8
9596
mock==4.0.3
9697
# via -r requirements/test.in
97-
more-itertools==8.7.0
98+
more-itertools==8.8.0
9899
# via pytest
99100
mypy-extensions==0.4.3
100101
# via black
@@ -112,7 +113,7 @@ pip-tools==6.1.0
112113
# via -r requirements/dev.in
113114
pluggy==0.13.1
114115
# via pytest
115-
pre-commit==2.12.1
116+
pre-commit==2.13.0
116117
# via -r requirements/dev.in
117118
psycopg2-binary==2.8.6
118119
# via -r requirements/base.in
@@ -124,7 +125,7 @@ pycodestyle==2.7.0
124125
# flake8-debugger
125126
# flake8-print
126127
# flake8-todo
127-
pydocstyle==6.0.0
128+
pydocstyle==6.1.1
128129
# via flake8-docstrings
129130
pyflakes==2.3.1
130131
# via flake8
@@ -134,7 +135,7 @@ pytest-cov==2.12.0
134135
# via -r requirements/test.in
135136
pytest-mock==3.6.1
136137
# via -r requirements/test.in
137-
pytest-runner==5.3.0
138+
pytest-runner==5.3.1
138139
# via -r requirements/test.in
139140
pytest-sugar==0.9.4
140141
# via -r requirements/test.in
@@ -157,7 +158,7 @@ redis==3.5.3
157158
# via -r requirements/base.in
158159
regex==2021.4.4
159160
# via black
160-
requests-aws4auth==1.0.1
161+
requests-aws4auth==1.1.0
161162
# via -r requirements/base.in
162163
requests==2.25.1
163164
# via requests-aws4auth
@@ -169,6 +170,7 @@ six==1.16.0
169170
# flake8-debugger
170171
# flake8-print
171172
# python-dateutil
173+
# requests-aws4auth
172174
# virtualenv
173175
snowballstemmer==2.1.0
174176
# via pydocstyle
@@ -194,12 +196,12 @@ typing-extensions==3.10.0.0
194196
# via
195197
# black
196198
# importlib-metadata
197-
urllib3==1.26.4
199+
urllib3==1.26.5
198200
# via
199201
# botocore
200202
# elasticsearch
201203
# requests
202-
virtualenv==20.4.6
204+
virtualenv==20.4.7
203205
# via pre-commit
204206
wcwidth==0.2.5
205207
# via pytest

requirements/prod.txt

+13-10
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ appdirs==1.4.4
88
# via black
99
black==21.5b1
1010
# via -r requirements/base.in
11-
boto3==1.17.73
11+
boto3==1.17.83
1212
# via -r requirements/base.in
13-
botocore==1.20.73
13+
botocore==1.20.83
1414
# via
1515
# boto3
1616
# s3transfer
@@ -24,24 +24,26 @@ certifi==2020.12.5
2424
# requests
2525
chardet==4.0.0
2626
# via requests
27-
click==8.0.0
27+
click==8.0.1
2828
# via
2929
# -r requirements/base.in
3030
# black
3131
elasticsearch-dsl==7.3.0
3232
# via -r requirements/base.in
33-
elasticsearch==7.12.1
33+
elasticsearch==7.13.0
3434
# via elasticsearch-dsl
3535
environs==9.3.2
3636
# via -r requirements/base.in
37-
faker==8.1.4
37+
faker==8.4.0
3838
# via -r requirements/base.in
3939
greenlet==1.1.0
4040
# via sqlalchemy
4141
idna==2.10
4242
# via requests
43-
importlib-metadata==4.0.1
44-
# via sqlalchemy
43+
importlib-metadata==4.3.0
44+
# via
45+
# click
46+
# sqlalchemy
4547
jmespath==0.10.0
4648
# via
4749
# boto3
@@ -50,7 +52,7 @@ marshmallow==3.12.1
5052
# via environs
5153
mypy-extensions==0.4.3
5254
# via black
53-
newrelic==6.2.0.156
55+
newrelic==6.4.0.157
5456
# via -r requirements/prod.in
5557
pathspec==0.8.1
5658
# via black
@@ -67,7 +69,7 @@ redis==3.5.3
6769
# via -r requirements/base.in
6870
regex==2021.4.4
6971
# via black
70-
requests-aws4auth==1.0.1
72+
requests-aws4auth==1.1.0
7173
# via -r requirements/base.in
7274
requests==2.25.1
7375
# via requests-aws4auth
@@ -77,6 +79,7 @@ six==1.16.0
7779
# via
7880
# elasticsearch-dsl
7981
# python-dateutil
82+
# requests-aws4auth
8083
sqlalchemy==1.4.15
8184
# via -r requirements/base.in
8285
sqlparse==0.4.1
@@ -91,7 +94,7 @@ typing-extensions==3.10.0.0
9194
# via
9295
# black
9396
# importlib-metadata
94-
urllib3==1.26.4
97+
urllib3==1.26.5
9598
# via
9699
# botocore
97100
# elasticsearch

requirements/test.txt

+13-11
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ attrs==21.2.0
1010
# via pytest
1111
black==21.5b1
1212
# via -r requirements/base.in
13-
boto3==1.17.73
13+
boto3==1.17.83
1414
# via -r requirements/base.in
15-
botocore==1.20.73
15+
botocore==1.20.83
1616
# via
1717
# boto3
1818
# s3transfer
@@ -26,19 +26,19 @@ certifi==2020.12.5
2626
# requests
2727
chardet==4.0.0
2828
# via requests
29-
click==8.0.0
29+
click==8.0.1
3030
# via
3131
# -r requirements/base.in
3232
# black
3333
coverage[toml]==5.5
3434
# via pytest-cov
3535
elasticsearch-dsl==7.3.0
3636
# via -r requirements/base.in
37-
elasticsearch==7.12.1
37+
elasticsearch==7.13.0
3838
# via elasticsearch-dsl
3939
environs==9.3.2
4040
# via -r requirements/base.in
41-
faker==8.1.4
41+
faker==8.4.0
4242
# via -r requirements/base.in
4343
flake8-debugger==4.0.0
4444
# via -r requirements/test.in
@@ -60,8 +60,9 @@ greenlet==1.1.0
6060
# via sqlalchemy
6161
idna==2.10
6262
# via requests
63-
importlib-metadata==4.0.1
63+
importlib-metadata==4.3.0
6464
# via
65+
# click
6566
# flake8
6667
# pluggy
6768
# pytest
@@ -78,7 +79,7 @@ mccabe==0.6.1
7879
# via flake8
7980
mock==4.0.3
8081
# via -r requirements/test.in
81-
more-itertools==8.7.0
82+
more-itertools==8.8.0
8283
# via pytest
8384
mypy-extensions==0.4.3
8485
# via black
@@ -100,7 +101,7 @@ pycodestyle==2.7.0
100101
# flake8-debugger
101102
# flake8-print
102103
# flake8-todo
103-
pydocstyle==6.0.0
104+
pydocstyle==6.1.1
104105
# via flake8-docstrings
105106
pyflakes==2.3.1
106107
# via flake8
@@ -110,7 +111,7 @@ pytest-cov==2.12.0
110111
# via -r requirements/test.in
111112
pytest-mock==3.6.1
112113
# via -r requirements/test.in
113-
pytest-runner==5.3.0
114+
pytest-runner==5.3.1
114115
# via -r requirements/test.in
115116
pytest-sugar==0.9.4
116117
# via -r requirements/test.in
@@ -131,7 +132,7 @@ redis==3.5.3
131132
# via -r requirements/base.in
132133
regex==2021.4.4
133134
# via black
134-
requests-aws4auth==1.0.1
135+
requests-aws4auth==1.1.0
135136
# via -r requirements/base.in
136137
requests==2.25.1
137138
# via requests-aws4auth
@@ -143,6 +144,7 @@ six==1.16.0
143144
# flake8-debugger
144145
# flake8-print
145146
# python-dateutil
147+
# requests-aws4auth
146148
snowballstemmer==2.1.0
147149
# via pydocstyle
148150
sqlalchemy==1.4.15
@@ -165,7 +167,7 @@ typing-extensions==3.10.0.0
165167
# via
166168
# black
167169
# importlib-metadata
168-
urllib3==1.26.4
170+
urllib3==1.26.5
169171
# via
170172
# botocore
171173
# elasticsearch

0 commit comments

Comments
 (0)