your MySQL-python build seems to be the problem. I would try upgrading.
mhearne808[insert-at-sign-here]gmail[insert-dot-here]com wrote:
>
> Hello - I am using SQLAlchemy as a part of the Enthought Python
> Distribution. I'm getting an error while using metadata.drop_all()
> with mysql, but not with sqlite. I was hoping someone could explain
> what it is that I'm doing wrong.
>
> Version info:
> Mac OS 10.5.7
> MySQL Ver 14.14 Distrib 5.1.34
> Python 2.5.4 -- EPD_Py25 4.2.30201
> SQLAlchemy 0.4.6
>
> The sample code is below (you have to have a mysql database that you
> are willing to try to destroy). The stack trace is below that. If I
> replace driver='mysql' with driver='sqlite', I get no errors.
>
> The grants for the above user and database are as follows:
> mysql> show grants for pager_wr...@localhost;
> +--------------------------------------------------------------------------------------------------------------------
> +
> | Grants for
> pwr...@localhost
> |
> +--------------------------------------------------------------------------------------------------------------------
> +
> | GRANT USAGE ON *.* TO 'pwrite'@'localhost' IDENTIFIED BY PASSWORD
> '*FC4C8052E3C11C2C1FBB16180EFFFC36869B177E' |
> | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON `sampledb`.*
> TO 'pwrite'@'localhost' |
> +--------------------------------------------------------------------------------------------------------------------
> +
> 2 rows in set (0.00 sec)
>
>
> #####code##########
> #!/usr/bin/env python
>
> from sqlalchemy.orm import sessionmaker
> from sqlalchemy import *
> import sqlalchemy.exceptions
>
> driver = 'mysql'
> user = 'pwrite'
> password = 'rwrite'
> host = 'localhost'
> database = 'sampledb'
>
> if driver == 'mysql':
> connectionURL = '%s://%s:%...@%s/%s' %
> (driver,user,password,host,database)
>
> if driver == 'sqlite':
> connectionURL = '%s:///%s' % (driver,host)
>
> engine = create_engine(connectionURL,echo=True)
> engine.connect()
> Session = sqlalchemy.orm.sessionmaker(bind=engine, autoflush=True)
> metadata = MetaData()
> user_table = Table('user', metadata,
> Column('id', Integer, primary_key=True),
> Column('lastname', String(40)),
> Column('firstname', String(100)),
> Column('contact', String(25)),
> Column('createdon', DateTime),
> UniqueConstraint('lastname',
> 'firstname','contact'),
> mysql_engine='InnoDB'
> )
>
> metadata.drop_all(bind=engine)
> #####code##########
>
> #####trace##########
> Traceback (most recent call last):
> File "./dbtest.py", line 33, in <module>
> metadata.drop_all(bind=engine)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/
> schema.py", line 1609, in drop_all
> bind.drop(self, checkfirst=checkfirst, tables=tables)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/engine/
> base.py", line 1144, in drop
> self._run_visitor(self.dialect.schemadropper, entity,
> connection=connection, **kwargs)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/engine/
> base.py", line 1168, in _run_visitor
> visitorcallable(self.dialect, conn, **kwargs).traverse(element)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/sql/
> visitors.py", line 75, in traverse
> return self._non_cloned_traversal(obj)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/sql/
> visitors.py", line 134, in _non_cloned_traversal
> self.traverse_single(target)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/sql/
> visitors.py", line 35, in traverse_single
> return meth(obj, **kwargs)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/sql/
> compiler.py", line 912, in visit_metadata
> collection = [t for t in metadata.table_iterator(reverse=True,
> tables=self.tables) if (not self.checkfirst or self.dialect.has_table
> (self.connection, t.name, schema=t.schema))]
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/
> databases/mysql.py", line 1578, in has_table
> self._autoset_identifier_style(connection)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/
> databases/mysql.py", line 1802, in _autoset_identifier_style
> charset=charset))
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/engine/
> base.py", line 844, in execute
> return Connection.executors[c](self, object, multiparams, params)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/engine/
> base.py", line 853, in _execute_text
> context = self.__create_execution_context(statement=statement,
> parameters=parameters)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/engine/
> base.py", line 948, in __create_execution_context
> return self.engine.dialect.create_execution_context
> (connection=self, **kwargs)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/
> databases/mysql.py", line 1474, in create_execution_context
> return MySQLExecutionContext(self, connection, **kwargs)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/engine/
> default.py", line 194, in __init__
> self.cursor = self.create_cursor()
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/engine/
> default.py", line 276, in create_cursor
> return self._connection.connection.cursor()
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/SQLAlchemy-0.4.6n1-py2.5.egg/sqlalchemy/
> pool.py", line 370, in cursor
> c = self.connection.cursor(*args, **kwargs)
> File "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/
> python2.5/site-packages/MySQL_python-1.2.2n3-py2.5-macosx-10.3-fat.egg/
> MySQLdb/connections.py", line 226, in cursor
> return (cursorclass or self.cursorclass)(self)
> AttributeError: 'Connection' object has no attribute 'cursorclass'
> #####trace##########
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---