Simon,
Simon Pamies wrote:
> Hi,
>
> although I said I would start on Friday if there are no objections, I
> couldn't longer resist to revamp autocode and so I moved it to google
> code.
>
> Please have a look at http://code.google.com/p/sqlautocode/ for the
> changes and the current structure.
>
> I also removed some contents from
> http://www.sqlalchemy.org/trac/wiki/UsageRecipes/AutoCode
> to reflect the move.
>
> I performed a release under LGPL. Hope that this is ok and fits into
> the sqlalchemy environment.
>
> If s/o has objections and/or wants to add information/data/code feel
> free to contact me.
>
> Simon Pamies
>
I had changed one of the other versions to handle Firebird and got it to
work for my purposes, but did some hacks which were not for public
consumption.
If you or someone else can help me working the hacks out then maybe
Firebird could be supported by this new autocode.
I did the test with sqlalchemy 0.4beta6, which seems to require some
changes to autocode.
Traceback 1:
Traceback (most recent call last):
File "autocode.py", line 140, in <module>
c.type = autoloader.coltypes[ c.type.__class__ ]()
KeyError: <class 'sqlalchemy.types.Integer'>
I don't know how to fix the above.
Traceback 2:
Traceback (most recent call last):
File "autocode.py", line 61, in <module>
dburl = engine.url.make_url(url)
NameError: name 'engine' is not defined
Just commenting the line "dburl = engine.url.make_url(url)" is fine as
the "dburl" is not used.
Traceback 3:
Traceback (most recent call last):
File "autocode.py", line 71, in <module>
metadata = BoundMetaData(db)
NameError: name 'BoundMetaData' is not defined
Just change:
metadata = BoundMetaData(db)
to:
metadata = MetaData(db)
Traceback 4:
Traceback (most recent call last):
File "formatter.py", line 75, in <module>
sql._TextClause.__repr__ = textclause_repr
NameError: name 'sql' is not defined
I don't know how to correct this, but as FB doesn't use schema I did get
around it by just commenting the block "Monkey patching sqlalchemy repr
functions"
Question for FB:
What should be returned to the variable "sqltext" for indexes in the
following code?
for name,tbl_name,sqltext in db.execute( me.sql4indexes):
The output for a table then looks like this:
I18N_CURRLANG
=
Table('I18N_CURRLANG
',
MetaData(Engine(firebird://SYSDBA:[EMAIL
PROTECTED]/c:/dev/twcb/data/i18n.fdb)),
Column(u'id', Integer(), primary_key=True, nullable=False),
Column(u'user_name', String(length=80,convert_unicode=False)),
Column(u'lang', String(length=20,convert_unicode=False),
nullable=False), schema=None)
It would be nice to add maybe a "pretty print" option so it would look
more like this:
I18N_CURRLANG = Table('I18N_CURRLANG',
MetaData(Engine(firebird://USER:[EMAIL PROTECTED]/c:/dev/twcb/data/i18n.fdb)),
Column(u'id', Integer(), primary_key=True, nullable=False),
Column(u'user_name',
String(length=80,convert_unicode=False)),
Column(u'lang', String(length=20,convert_unicode=False),
nullable=False), schema=None)
Another option would be nice to replace:
MetaData(Engine(firebird://USER:[EMAIL PROTECTED]/c:/dev/twcb/data/i18n.fdb)),
with just:
metadata
I.e. just the variable for metadata, so that one can assign an engine at
run time.
Another thing is the table names, but I believe this is an FB issue,
they should be .strip()'ed and I also do a .lower() on them, so they
look nicer (in my tests this does not cause any problems).
When these things are worked out I'll send you the little bit of code
need in loader.py for FB.
Best regards
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
-~----------~----~----~----~------~----~------~--~---