Upgraded to beta3. So you're saying that if we want to be able to drop a constraint later on we must create it with a name. Alright. But I am still getting an Operational Error:
################################################ #!/usr/bin/env python import sqlalchemy from sqlalchemy import Table, Column, MetaData from sqlalchemy.schema import * from sqlalchemy.types import * from sqlalchemy import create_engine engine = create_engine('sqlite:///:memory:', echo=True) metadata = MetaData() category = Table('category', metadata, Column('name', String (64), nullable=False ), PrimaryKeyConstraint('name', name='name'), ) metadata.create_all(engine) from sqlalchemy.schema import DropConstraint engine.execute(DropConstraint(category.constraints.pop())) ################################################ Yields: $ python /tmp/testthis.py 2010-04-15 11:39:56,367 INFO sqlalchemy.engine.base.Engine.0x...9a2c PRAGMA table_info("category") 2010-04-15 11:39:56,368 INFO sqlalchemy.engine.base.Engine.0x...9a2c () 2010-04-15 11:39:56,369 INFO sqlalchemy.engine.base.Engine.0x...9a2c CREATE TABLE category ( name VARCHAR(64) NOT NULL, CONSTRAINT name PRIMARY KEY (name) ) 2010-04-15 11:39:56,369 INFO sqlalchemy.engine.base.Engine.0x...9a2c () 2010-04-15 11:39:56,369 INFO sqlalchemy.engine.base.Engine.0x...9a2c COMMIT 2010-04-15 11:39:56,370 INFO sqlalchemy.engine.base.Engine.0x...9a2c ALTER TABLE category DROP CONSTRAINT name 2010-04-15 11:39:56,375 INFO sqlalchemy.engine.base.Engine.0x...9a2c () 2010-04-15 11:39:56,375 INFO sqlalchemy.engine.base.Engine.0x...9a2c ROLLBACK Traceback (most recent call last): File "/tmp/testthis.py", line 26, in <module> engine.execute(DropConstraint(category.constraints.pop())) File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line 1533, in execute return connection.execute(statement, *multiparams, **params) File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line 1086, in execute return Connection.executors[c](self, object, multiparams, params) File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line 1136, in _execute_ddl return self.__execute_context(context) File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line 1180, in __execute_context context.parameters[0], context=context) File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line 1249, in _cursor_execute self._handle_dbapi_exception(e, statement, parameters, cursor, context) File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line 1247, in _cursor_execute self.dialect.do_execute(cursor, statement, parameters, context=context) File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/ default.py", line 266, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.OperationalError: (OperationalError) near "DROP": syntax error u'ALTER TABLE category DROP CONSTRAINT name' () What am I doing wrong here? -Gerry On Apr 15, 12:28 am, Michael Bayer <mike...@zzzcomputing.com> wrote: > don't know why you'd be using beta1 when we're up to beta3.....heres a fully > working example: > > from sqlalchemy import * > from sqlalchemy.schema import * > > metadata = MetaData() > > c1 = Table('category', metadata, > Column('name', String (64), nullable=False ), > PrimaryKeyConstraint('name', name='somename') > ) > > c2 = Table('category2', metadata, > Column('name', String (64), nullable=False ), > Column('name2', String (64), nullable=False ), > PrimaryKeyConstraint('name', 'name2', name='somename') > ) > > print DropConstraint(c1.constraints.pop()) > print DropConstraint(c2.constraints.pop()) > > On Apr 14, 2010, at 9:40 PM, Gerry Reno wrote: > > > > > Ok, I tried with the keyword but I get this using 0.6beta1: > > > PrimaryKeyConstraint(id='id'), > > File "/usr/lib/python2.5/site-packages/sqlalchemy/schema.py", line > > 1391, in __init__ > > super(ColumnCollectionConstraint, self).__init__(**kw) > > TypeError: __init__() got an unexpected keyword argument 'id' > > > -Gerry > > > On Apr 14, 9:28 pm, Gerry Reno <gr...@verizon.net> wrote: > >> What do I do then for a composite primary key? > > >> PrimaryKeyConstraint('col1','col2') > > >> -Gerry > > >> On Apr 14, 9:13 pm, Michael Bayer <mike...@zzzcomputing.com> wrote: > > >>> PrimaryKeyConstraint(name='name') > > >>> On Apr 14, 2010, at 8:22 PM, Gerry Reno wrote: > > >>>> category = Table('category', metadata, > >>>> Column('name', String (64), nullable=False ), > >>>> ... > >>>> PrimaryKeyConstraint('name'), > >>>> ) > > > -- > > You received this message because you are subscribed to the Google Groups > > "sqlalchemy" group. > > To post to this group, send email to sqlalch...@googlegroups.com. > > To unsubscribe from this group, send email to > > sqlalchemy+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.