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 Sqlalchemy-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users