I am using postgresql.
When i use the schema keyword in Table(),
if there is already a table with the same name in
the "public"/default schema then metadata.create_all()
assumes the schema (other than public) and table already exists.
I.e. instead of checking in the requested schema it uses "public".
The second bug, is if i now drop the table from the "public" schema
and do metadata.create_all(), sqlalchemy does not attempt to create
the schema before creating the table and throws a ProgrammingError:
>>> metadata.create_all()
[2006-08-06 00:53:12,228] [engine]: select relname from pg_class where
lower(relname) = %(name)s
[2006-08-06 00:53:12,229] [engine]: {'name': 'users'}
[2006-08-06 00:53:12,237] [engine]:
CREATE TABLE nis2.users (
user_id SERIAL NOT NULL,
user_name VARCHAR(40),
password VARCHAR(10),
PRIMARY KEY (user_id)
)
[2006-08-06 00:53:12,238] [engine]: None
[2006-08-06 00:53:12,249] [engine]: ROLLBACK
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "build/bdist.linux-i686/egg/sqlalchemy/schema.py", line 768, in
create_all
File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line 456, in
run_callable
File "build/bdist.linux-i686/egg/sqlalchemy/schema.py", line 767, in do
File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line 298, in
create
File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line 399, in
create
File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line 423, in
_run_visitor
File "build/bdist.linux-i686/egg/sqlalchemy/schema.py", line 209, in
accept_schema_visitor
File "build/bdist.linux-i686/egg/sqlalchemy/ansisql.py", line 639, in
visit_table
File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line 685, in
execute
File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line 354, in
proxy
File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line 319, in
_execute_raw
File "build/bdist.linux-i686/egg/sqlalchemy/engine/base.py", line 338, in
_execute
sqlalchemy.exceptions.SQLError: (ProgrammingError) schema "nis2" does not
exist
'\nCREATE TABLE nis2.users (\n\tuser_id SERIAL NOT NULL, \n\tuser_name
VARCHAR(40), \n\tpassword VARCHAR(10), \n\tPRIMARY KEY (user_id)\n)\n\n' {}
--
Regards,
Tzahi.
--
Tzahi Fadida
Blog: http://tzahi.blogsite.org | Home Site: http://tzahi.webhop.info
WARNING TO SPAMMERS: see at
http://members.lycos.co.uk/my2nis/spamwarning.html
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Sqlalchemy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users