- changed status to duplicate
Autoload'ed tables wh foreign key can't be re-created after being dropped on postgres
Issue #524
resolved
Without the foreign key, it works fine and with sqlite instead of postgres, it works fine too.
See attached file for a test case.
It fails with the following traceback:
Traceback (most recent call last):
File "test_autoload.py", line 20, in <module>
meta2.create_all() # this fails.
File "/home/ged/devel/sqlalchemy/lib/sqlalchemy/schema.py", line 1147, in create_all
connectable.create(self, checkfirst=checkfirst, tables=tables)
File "/home/ged/devel/sqlalchemy/lib/sqlalchemy/engine/base.py", line 681, in create
self._run_visitor(self.dialect.schemagenerator, entity, connection=connection, **kwargs)
File "/home/ged/devel/sqlalchemy/lib/sqlalchemy/engine/base.py", line 711, in _run_visitor
element.accept_visitor(visitorcallable(conn, **kwargs))
File "/home/ged/devel/sqlalchemy/lib/sqlalchemy/schema.py", line 1169, in accept_visitor
visitor.visit_metadata(self)
File "/home/ged/devel/sqlalchemy/lib/sqlalchemy/ansisql.py", line 805, in visit_metadata
table.accept_visitor(self)
File "/home/ged/devel/sqlalchemy/lib/sqlalchemy/sql.py", line 2095, in accept_visitor
visitor.visit_table(self)
File "/home/ged/devel/sqlalchemy/lib/sqlalchemy/ansisql.py", line 840, in visit_table
self.execute()
File "/home/ged/devel/sqlalchemy/lib/sqlalchemy/engine/base.py", line 1179, in execute
return self.connection.execute(self.buffer.getvalue())
File "/home/ged/devel/sqlalchemy/lib/sqlalchemy/engine/base.py", line 502, in execute
return Connection.executors[c](c)(self, object, *multiparams, **params)
File "/home/ged/devel/sqlalchemy/lib/sqlalchemy/engine/base.py", line 517, in execute_text
self._execute_raw(context)
File "/home/ged/devel/sqlalchemy/lib/sqlalchemy/engine/base.py", line 566, in _execute_raw
self._execute(context)
File "/home/ged/devel/sqlalchemy/lib/sqlalchemy/engine/base.py", line 583, in _execute
raise exceptions.SQLError(context.statement, context.parameters, e)
sqlalchemy.exceptions.SQLError: (ProgrammingError) syntax error at or near "$1"
LINE 6: CONSTRAINT $1 FOREIGN KEY(test_id) REFERENCES test (id)
^
"\nCREATE TABLE test (\n\tid INTEGER DEFAULT nextval('public.test_id_seq'::text) NOT NULL, \n\ttest_id INTEGER, \n\tPRIMARY KEY (id), \n\t CONSTRAINT $1 FOREIGN KEY(test_id) REFERENCES test (id)\n)\n\n" {}
Comments (1)
-
repo owner - Log in to comment
#525