- changed title to SQLite dialect attempts to manually create the primary key index autogenn'ed by the database
- changed milestone to 0.6.0
SQLite dialect attempts to manually create the primary key index autogenn'ed by the database
Issue #1551
resolved
(original reporter: ged) The attached test case produce the following traceback. The error message is really strange too since the table and column names have nothing to do with the problem (and I doubt "sqlite_autoindex_category_1" is a reserved name).
The same test case works fine in 0.5.x (and probably earlier versions too).
Traceback (most recent call last):
File "test06.py", line 11, in <module>
meta2.create_all()
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/schema.py", line 1820, in create_all
bind.create(self, checkfirst=checkfirst, tables=tables)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/engine/base.py", line 1317, in create
self._run_visitor(ddl.SchemaGenerator, entity, connection=connection, **kwargs)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/engine/base.py", line 1348, in _run_visitor
visitorcallable(self.dialect, conn, **kwargs).traverse(element)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/sql/visitors.py", line 86, in traverse
return traverse(obj, self.__traverse_options__, self._visitor_dict)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/sql/visitors.py", line 197, in traverse
return traverse_using(iterate(obj, opts), obj, visitors)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/sql/visitors.py", line 191, in traverse_using
meth(target)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/engine/ddl.py", line 42, in visit_metadata
self.traverse_single(table)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/sql/visitors.py", line 76, in traverse_single
return meth(obj)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/engine/ddl.py", line 59, in visit_table
self.traverse_single(index)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/sql/visitors.py", line 76, in traverse_single
return meth(obj)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/engine/ddl.py", line 73, in visit_index
self.connection.execute(schema.CreateIndex(index))
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/engine/base.py", line 977, in execute
return Connection.executors[c](c)(self, object, multiparams, params)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/engine/base.py", line 1027, in _execute_ddl
return self.__execute_context(context)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/engine/base.py", line 1063, in __execute_context
self._cursor_execute(context.cursor, context.statement, context.parameters[0](0), context=context)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/engine/base.py", line 1125, in _cursor_execute
self._handle_dbapi_exception(e, statement, parameters, cursor, context)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/engine/base.py", line 1123, in _cursor_execute
self.dialect.do_execute(cursor, statement, parameters, context=context)
File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/engine/default.py", line 177, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (OperationalError) object name reserved for internal use: sqlite_autoindex_category_1 u'CREATE UNIQUE INDEX sqlite_autoindex_category_1 ON category (name)' ()
Comments (3)
-
repo owner -
repo owner - changed status to resolved
-
repo owner - removed milestone
Removing milestone: 0.6.0 (automated comment)
- Log in to comment
ive never seen that before but the index is generated by sqlite in response to the primary key. reflection then picks it up and doesn't recognize it as an implicitly defined index.