This issue is not related to sorted_tables and is a failing assertion within
Firebird reflection code. The rdb$relation_fields view is returning an
unexpected value. The code in 0.5 is pretty much the same thing though so
not sure how something different is occuring.
You'd need to provide for us the raw firebird table schema which produces the
error. It means you'd have to locate which table it is - so if the table is
"foo", you'd give us:
-- sql script
CREATE TABLE foo ...
and then run a script like this, which should throw the same error, to make
sure you've got it:
from sqlalchemy import create_engine, MetaData, Table
engine = create_engine(...)
m = MetaData()
t = Table('foo', m, autoload=True, autoload_with=engine) # <--- boom
On Sep 6, 2010, at 5:19 AM, werner wrote:
> I am writing a bit of code to dump data from one db into another one. Basic
> structure of the db's are the same, one is in FB 2.1 format and the other
> other in FB 2.5 format and all primary keys are BIGINT instead of INTEGER.
>
> I am still on 0.5.8 and using "reversed(meta.sorted_tables)" doesn't give me
> the right order of the tables they don't seem to be in order of dependency,
> so wanted to try out 0.6.3 to see if this is different but I run into an
> exception I can't figure out.
>
> Following is an excerpt of my code (I hope I included all what is needed in
> relation to the exception).
>
> engine = db.sa.create_engine(dburl, encoding='utf8', echo=False)
> connection = engine.connect()
> Session = db.sao.sessionmaker()
> Session.configure(bind=engine)
> session = Session()
>
> meta = db.sa.MetaData()
> meta.reflect(bind=engine)
> for table in reversed(meta.sorted_tables):
> print table
>
> "db" above is my model, relevant code to the exception is:
>
> import sys
> if not hasattr(sys, 'frozen'):
> import pkg_resources
> pkg_resources.require("sqlalchemy") # get latest version
> ## pkg_resources.require("sqlalchemy==0.5.8") # get specific version
> import sqlalchemy as sa
> import sqlalchemy.orm as sao
> import sqlalchemy.ext.declarative as sad
> import sqlalchemy.exc as saexc
>
> import datetime
>
> class BaseExt(object):
> def __repr__(self):
> return "%s(%s)" % (
> (self.__class__.__name__),
> ', '.join(["%s=%r" % (key, getattr(self, key))
> for key in sorted(self.__dict__.keys())
> if not key.startswith('_')]))
>
> Base = sad.declarative_base(cls=BaseExt)
> metadata = Base.metadata
>
> and all my table definitions.
>
> I get the following exception with 0.6.3, with 0.5.8 it runs o.k.
>
> Traceback (most recent call last):
> File "saTest.py", line 37, in <module>
> meta.reflect(bind=engine)
> File
> "c:\python26\lib\site-packages\sqlalchemy-0.6.3-py2.6.egg\sqlalchemy\schema.py",
> line 1950, in reflect
> Table(name, self, **reflect_opts)
> File
> "c:\python26\lib\site-packages\sqlalchemy-0.6.3-py2.6.egg\sqlalchemy\schema.py",
> line 209, in __new__
> table._init(name, metadata, *args, **kw)
> File
> "c:\python26\lib\site-packages\sqlalchemy-0.6.3-py2.6.egg\sqlalchemy\schema.py",
> line 257, in _init
> include_columns=include_columns)
> File
> "c:\python26\lib\site-packages\sqlalchemy-0.6.3-py2.6.egg\sqlalchemy\engine\base.py",
> line 1776, in reflecttable
> self.dialect.reflecttable(conn, table, include_columns)
> File
> "c:\python26\lib\site-packages\sqlalchemy-0.6.3-py2.6.egg\sqlalchemy\engine\default.py",
> line 217, in reflecttable
> return insp.reflecttable(table, include_columns)
> File
> "c:\python26\lib\site-packages\sqlalchemy-0.6.3-py2.6.egg\sqlalchemy\engine\reflection.py",
> line 376, in reflecttable
> for col_d in self.get_columns(table_name, schema, **tblkw):
> File
> "c:\python26\lib\site-packages\sqlalchemy-0.6.3-py2.6.egg\sqlalchemy\engine\reflection.py",
> line 223, in get_columns
> **kw)
> File "<string>", line 1, in <lambda>
> File
> "c:\python26\lib\site-packages\sqlalchemy-0.6.3-py2.6.egg\sqlalchemy\engine\reflection.py",
> line 40, in cache
> ret = fn(self, con, *args, **kw)
> File
> "c:\python26\lib\site-packages\sqlalchemy-0.6.3-py2.6.egg\sqlalchemy\dialects\firebird\base.py",
> line 578, in get_columns
> defexpr
> AssertionError: Unrecognized default value: default -1
>
> Appreciate any hints on how to correct this.
>
> Werner
>
> --
> 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.
>
--
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.