I am doing a bit of testing and run into this exception.
Traceback (most recent call last):
File "saCreateDb.py", line 31, in <module>
meta.create_all(engine)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\schema.py",
line 1934, in create_all
bind.create(self, checkfirst=checkfirst, tables=tables)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\engine\base.py",
line 1393, in create
self._run_visitor(ddl.SchemaGenerator, entity,
connection=connection, **kwargs)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\engine\base.py",
line 1424, in _run_visitor
visitorcallable(self.dialect, conn, **kwargs).traverse(element)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\sql\visitors.py",
line 86, in traverse
return traverse(obj, self.__traverse_options__, self._visitor_dict)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\sql\visitors.py",
line 197, in traverse
return traverse_using(iterate(obj, opts), obj, visitors)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\sql\visitors.py",
line 191, in traverse_using
meth(target)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\engine\ddl.py",
line 42, in visit_metadata
self.traverse_single(table)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\sql\visitors.py",
line 76, in traverse_single
return meth(obj)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\engine\ddl.py",
line 55, in visit_table
self.connection.execute(schema.CreateTable(table))
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\engine\base.py",
line 1035, in execute
return Connection.executors[c](self, object, multiparams, params)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\engine\base.py",
line 1084, in _execute_ddl
return self.__execute_context(context)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\engine\base.py",
line 1120, in __execute_context
self._cursor_execute(context.cursor, context.statement,
context.parameters[0], context=context)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\engine\base.py",
line 1182, in _cursor_execute
self._handle_dbapi_exception(e, statement, parameters, cursor, context)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\engine\base.py",
line 1180, in _cursor_execute
self.dialect.do_execute(cursor, statement, parameters, context=context)
File
"c:\python25\lib\site-packages\sqlalchemy-0.6beta1-py2.5.egg\sqlalchemy\dialects\firebird\base.py",
line 614, in do_execute
cursor.execute(statement, parameters or [])
sqlalchemy.exc.ProgrammingError: (ProgrammingError) (-104,
'isc_dsql_prepare: \n Dynamic SQL Error\n SQL error code = -104\n
Token unknown - line 4, column 14\n ,') '\nCREATE TABLE users (\n\tid
INTEGER NOT NULL, \n\tname VARCHAR, \n\tfullname VARCHAR, \n\t"password"
VARCHAR, \n\tPRIMARY KEY (id)\n)\n\n' ()
Same code using 0.5.8 works fine.
The model for users is:
class User(Base):
""""""
__tablename__ = "users"
id = sa.Column(sa.Integer, sa.Sequence('users_id'), primary_key=True)
name = sa.Column(sa.String)
fullname = sa.Column(sa.String)
password = sa.Column(sa.String)
It looks (using echo=True) like 0.5.8 used BLOB instead of VARCHAR for
String without a size.
I guess this is as designed looking at 06Migration - Miscellaneous API
changes.
If this as designed then maybe the tutorials should change from e.g.:
name = Column(String)
to
name = Column(String, length=30)
Werner
--
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.