Skip to content

Commit d3f2551

Browse files
committed
Include the schema name in the foreign key definition if necessary
1 parent 2f39cb1 commit d3f2551

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

sqlacodegen/codegen.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def _render_column_type(coltype):
9898

9999

100100
def _render_fk(fk):
101-
text = "ForeignKey('%s.%s'" % (fk.column.table.name, fk.column.name)
101+
text = "ForeignKey('%s.%s'" % (fk.column.table.fullname, fk.column.name)
102102
if fk.deferrable:
103103
text += ', deferrable=True'
104104
if fk.initially:
@@ -144,7 +144,7 @@ def _render_column(column, show_name):
144144
def _render_constraint(constraint):
145145
if isinstance(constraint, ForeignKeyConstraint):
146146
local_columns = constraint.columns
147-
remote_columns = ['{0}.{1}'.format(fk.column.table.name, fk.column.name)
147+
remote_columns = ['{0}.{1}'.format(fk.column.table.fullname, fk.column.name)
148148
for fk in constraint.elements]
149149
return 'ForeignKeyConstraint({0!r}, {1!r})'.format(local_columns, remote_columns)
150150
elif isinstance(constraint, CheckConstraint):
@@ -461,7 +461,7 @@ def __init__(self, metadata, noindexes=False, noconstraints=False, nojoined=Fals
461461
self.models = []
462462
self.collector = ImportCollector()
463463
classes = {}
464-
for table in sorted(metadata.tables.values(), key=lambda t: t.name):
464+
for table in sorted(metadata.tables.values(), key=lambda t: (t.schema or '', t.name)):
465465
# Support for Alembic and sqlalchemy-migrate -- never expose the schema version tables
466466
if table.name in ('alembic_version', 'migrate_version'):
467467
continue

0 commit comments

Comments
 (0)