Hi Florian,
the following patch sorts out creation problem. btw. i couldn't repeat
the other problems you have - your test code worked without problem on
svn trunk.
- andrija
On 08/03/06, Florian Boesch <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I've got a problem with the svn trunk and table creation of tables that
> contain
> foreign keys.
>
> Demo programm:
>
> engine = create_engine('oracle://dsn=orcl&user=asfd&password=asfd')
>
> foo = Table('foo', engine,
> Column('id', Integer, Sequence('foo_seq'), primary_key=True))
>
> bar = Table('bar', engine,
> Column('id', Integer, Sequence('bar_seq'), primary_key=True),
> Column('foo_id', Integer, ForeignKey('foo.id')))
>
> foo.create()
> bar.create()
>
> Error:
> Traceback (most recent call last):
> File "testalchemy.py", line 75, in ?
> bar.create()
> File
> "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.3-py2.4.egg/sqlalchemy/schema.py",
> line 212, in create
> self.engine.create(self)
> File
> "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.3-py2.4.egg/sqlalchemy/engine.py",
> line 319, in create
> entity.accept_schema_visitor(self.schemagenerator(**params))
> File
> "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.3-py2.4.egg/sqlalchemy/schema.py",
> line 179, in accept_schema_visitor
> return visitor.visit_table(self)
> File
> "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.3-py2.4.egg/sqlalchemy/ansisql.py",
> line 578, in visit_table
> self.append("\t" + self.get_column_specification(column,
> override_pk=len(pks)>1, first_pk=column.primary_key and not first_pk))
> File
> "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.3-py2.4.egg/sqlalchemy/databases/oracle.py",
> line 313, in get_column_specification
> colspec += " REFERENCES %s(%s)" %
> (column.column.foreign_key.column.table.name,
> column.column.foreign_key.column.name)
> AttributeError: 'Column' object has no attribute 'column'
>
> I now go back to sqlalchemy 0.1.2.
>
> Regards,
> Florian
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> that extends applications into web and mobile media. Attend the live webcast
> and join the prime developer group breaking into this new coding territory!
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
> _______________________________________________
> Sqlalchemy-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users
>
Index: lib/sqlalchemy/databases/oracle.py
===================================================================
--- lib/sqlalchemy/databases/oracle.py (revision 1111)
+++ lib/sqlalchemy/databases/oracle.py (working copy)
@@ -310,7 +310,7 @@
if column.primary_key and not override_pk:
colspec += " PRIMARY KEY"
if column.foreign_key:
- colspec += " REFERENCES %s(%s)" % (column.column.foreign_key.column.table.name, column.column.foreign_key.column.name)
+ colspec += " REFERENCES %s(%s)" % (column.foreign_key.column.table.name, column.foreign_key.column.name)
return colspec
def visit_sequence(self, sequence):