[sqlalchemy] Re: puzzling setup with ForeignKey - SOLVED

2009-02-20 Thread Alessandro Dentella

On Thu, Feb 19, 2009 at 12:57:07PM +0100, Alessandro Dentella wrote:
 Hi,
 
   in a working setup I added a ForeignKey to table 'cliente_cliente' as
   follows (client_id):
 
 class Project(Base):
  __tablename__ = ticket_project
  __table_args__  = {'useexisting' : True}
  id = Column(Integer, primary_key=True)
  date_create = Column(Date(), 
 server_default=text(CURRENT_TIMESTAMP), nullable=False)
  date_last_modify   = Column(Date(), onupdate=func.now(), 
 default=func.now())
  status = Column(ForeignKey('ticket_status.id'), 
 nullable=False)
  name   = Column(String(30), nullable=False)
  description= Column(Text, nullable=False)
  date_start = Column(Date, default=func.now())
  date_end   = Column(Date)
  client_id  = Column(ForeignKey(Cliente.id), nullable=True)
 
 
   this brakes session.query(Project) with the message I report below.
   
   Of course I *did* create new field on table in the Postgres database.
   Note that if I use autoload on all Tables everything works correctly, so I
   tend to think I made a mistake in the definition, but I already spent some
   hours w/o any better understanding.
 
   I'll try to reproduce the error on a simpler situation but is not that
   easy and I'd like to understand if the error message tells something that
   could address me to the solution
 
   thanks in advance
   sandro
   *:-)
 
 Traceback (most recent call last):
   File /home/misc/src/hg/py/fossati/fossati/job.py, line 86, in jobs_mask
 m.reload()
   File ../../sqlkit/widgets/mask/mask.py, line 67, in reload
   File /misc/src/hg/py/sqlkit/sqlkit/widgets/common/sqlwidget.py, line 703, 
 in reload
 self.records = query.all()
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/orm/query.py, line 
 1007, in all
 return list(self)
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/orm/query.py, line 
 1097, in __iter__
 context = self._compile_context()
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/orm/query.py, line 
 1569, in _compile_context
 from_clause = sql_util.splice_joins(from_clause, eager_join, 
 eager_join.stop_on)
   File /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/util.py, 
 line 252, in splice_joins
 right.onclause = adapter.traverse(right.onclause)
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/visitors.py, 
 line 158, in traverse
 return replacement_traverse(obj, self.__traverse_options__, replace)
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/visitors.py, 
 line 250, in replacement_traverse
 obj = clone(obj)
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/visitors.py, 
 line 241, in clone
 newelem = replace(element)
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/visitors.py, 
 line 155, in replace
 e = v.replace(elem)
   File /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/util.py, 
 line 473, in replace
 return self._corresponding_column(col, True)
   File /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/util.py, 
 line 451, in _corresponding_column
 newcol = self.selectable.corresponding_column(col, 
 require_embedded=require_embedded)
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/expression.py, 
 line 1834, in corresponding_column
 if self.c.contains_column(column):
   File /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/util.py, 
 line 1358, in __get__
 obj.__dict__[self.__name__] = result = self.fget(obj)
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/expression.py, 
 line 1867, in _columns
 self._export_columns()
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/expression.py, 
 line 1897, in _export_columns
 self._populate_column_collection()
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/expression.py, 
 line 2594, in _populate_column_collection
 for col in self.element.columns:
   File /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/util.py, 
 line 1358, in __get__
 obj.__dict__[self.__name__] = result = self.fget(obj)
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/expression.py, 
 line 1867, in _columns
 self._export_columns()
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/expression.py, 
 line 1897, in _export_columns
 self._populate_column_collection()
   File 
 /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/sql/expression.py, 
 line 3428, in _populate_column_collection
 c._make_proxy(self, name=self.use_labels and c._label or None)
   File /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/schema.py, 
 line 743, in _make_proxy
 [c._init_items(f) for f in fk]
   File /home/misc/src/sqlalchemy/sqlalchemy-svn/lib/sqlalchemy/schema.py, 
 

[sqlalchemy] Re: puzzling setup with ForeignKey

2009-02-19 Thread sandro dentella

On 19 Feb, 13:15, a...@svilendobrev.com wrote:
 if u make it the same way as the other ticket_status... key, would it
 work?

No, it won't.

*:-(


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@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
-~--~~~~--~~--~--~---