On Sunday 06 August 2006 06:04, Michael Bayer wrote: > ah yeah the first would be fixed by ticket #233, i.e. a TODO.
Well, it is very difficult to work with schemas without fixing 233, because even if i will write a ddl manipulator using plain sql statements i still have to detect this. Is there a way to check for the existance of a schema or a table for that matter (without create_all)? Is there a facility in metadata to access the list of tables it manages? What is the status of the SOC migration project, i know my own SOC project is finished (and all should be finished soon http://code.google.com/soc/studentfaq.html#timeline). If the migration project is usable then it might be a good replacement for programatically doing ddl operations in my framework. 10x. > > for the second, we currently dont have any support for CREATE SCHEMA, > (nor do we have things like ALTER, CREATE VIEW, stored procedure > management, etc). the create/drop/reflection capabilities of SA are > meant for small, self-packaging applications and assumes that more > sophisticated schemas would be created by DDLs or real schema > management applications. > > not that SA will never support CREATE SCHEMA, but its lower priority > since not every DB even supports CREATE SCHEMA and also SA is not > trying to be a replacement for DDLs. > > On Aug 5, 2006, at 6:11 PM, Tzahi Fadida wrote: > > 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 -- 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