On Fri, Jul 10, 2020, at 8:50 AM, Xander Cage wrote:
> hi,
>
> i have this litte flask-admin game running, now out of nowwhere sqlalchemy
> has begun to add strange "_1" suffixes to the column names. i know sqlalchemy
> does this to keep names unique, but in my case the queries are failing
> and my naming is unique.
>
>
> my models:
>
> ### DB models
>
> # Base model that for other models to inherit from
> class Base(db.Model):
> __abstract__ = True
>
> id = db.Column(db.Integer, primary_key=True, autoincrement=True)
> ts = db.Column(db.TIMESTAMP, default=db.func.current_timestamp(),
> onupdate=db.func.current_timestamp())
>
> def __str__(self):
> attrs = db.class_mapper(self.__class__).attrs # show also relationships
> if 'name' in attrs:
> return self.name
> elif 'parent' in attrs:
> return self.parent
> elif 'value' in attrs:
> return self.value
> else:
> return "<%s(%s)>" % (self.__class__.__name__,
> ', '.join('%s=%r' % (k.key, getattr(self, k.key))
> for k in sorted(attrs)
> )
> )
>
> class Attrib(Base):
> __tablename__ = 'attribs'
> name = Column(String(256, u'utf8_unicode_ci'), nullable=False)
> persistent = Column(Integer, server_default=FetchedValue())
> parent = Column(String(256, u'utf8_unicode_ci'),
> server_default=FetchedValue())
>
> class Entry(Base):
> __tablename__ = 'entries'
> node_id = Column(ForeignKey(u'nodes.id', ondelete=u'CASCADE',
> onupdate=u'CASCADE'), nullable=False, index=True)
> attrib_id = Column(ForeignKey(u'attribs.id', ondelete=u'CASCADE',
> onupdate=u'CASCADE'), nullable=False, index=True)
> value = Column(String(256, u'utf8_unicode_ci'), nullable=False)
> attrib = relationship(u'Attrib', primaryjoin='Entry.attrib_id == Attrib.id',
> backref=u'entries')
> node = relationship(u'Node', primaryjoin='Entry.node_id == Node.id',
> backref=u'entries')
>
> class Node(Base):
> __tablename__ = 'nodes'
> name = Column(String(256, u'utf8_unicode_ci'), nullable=False)
>
>
> error:
>
> sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1054, "Unknown
> column 'attribs_1.ts' in 'field list'")
> [SQL: SELECT entries.id AS entries_id, entries.ts AS entries_ts,
> entries.node_id AS entries_node_id, entries.attrib_id AS entries_attrib_id,
> entries.value AS entries_value, attribs_1.id AS attribs_1_id, attribs_1.ts AS
> attribs_1_ts, attribs_1.name AS attribs_1_name, attribs_1.persistent AS
> attribs_1_persistent, attribs_1.parent AS attribs_1_parent, nodes_1.id AS
> nodes_1_id, nodes_1.ts AS nodes_1_ts, nodes_1.name AS nodes_1_name
> FROM entries LEFT OUTER JOIN attribs AS attribs_1 ON entries.attrib_id =
> attribs_1.id LEFT OUTER JOIN nodes AS nodes_1 ON entries.node_id = nodes_1.id
> LIMIT %(param_1)s]
> [parameters: {'param_1': 20}]
>
> any idea whats going on here?
Hi there-
this depends on how you are emitting this query. Can you supply a complete
minimal reproducing example? most notably, what code you are running which
produces this SQL statement.
>
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and
> Verifiable Example. See http://stackoverflow.com/help/mcve for a full
> description.
> ---
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sqlalchemy/0983ac9b-0ecd-416e-bf6c-1ee5e73c95aeo%40googlegroups.com
>
> <https://groups.google.com/d/msgid/sqlalchemy/0983ac9b-0ecd-416e-bf6c-1ee5e73c95aeo%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper
http://www.sqlalchemy.org/
To post example code, please provide an MCVE: Minimal, Complete, and Verifiable
Example. See http://stackoverflow.com/help/mcve for a full description.
---
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sqlalchemy/db9896c2-e1b5-4cd2-a60f-be83c9598311%40www.fastmail.com.