the names of attributes on your Python class and the names of columns that are 
emitted in SQL are two separate things.    When you have "jobid = 
Column(Integer, ...)" , that's a declarative-only format that omits the first 
argument to Column which is the "name"; the declarative mapping process sets 
the "name" to be the same as the attribute name.

when you instead have "jobid = Column("somename", Integer ,...)", then you're 
passing the name argument.

this API grew out of some various legacy patterns which is why it's a little 
weird looking, but basically Column takes *args and it looks to see if it is 
getting "str, TypeEngine" or just "TypeEngine".   It also can be passed neither 
in cases where it derives its type from a ForeignKey() object.

On Thu, Feb 3, 2022, at 8:25 PM, Larry Martell wrote:
> I normally define a column in a model like this, for example:
> 
> jobID = Column(Integer, nullable=False, primary_key=True)
> 
> I now have a case where there are columns in the db that have spaces
> so I want to map the column name to a variable of a different name.
> Googling I found this:
> 
> https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#naming-columns-distinctly-from-attribute-names
> 
> class User(Base):
>     __tablename__ = 'user'
>     id = Column('user_id', Integer, primary_key=True)
>     name = Column('user_name', String(50))
> 
> How can that work? Is it a different version of Column() from what I
> have been using?
> 
> -- 
> 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 sqlalchemy+unsubscr...@googlegroups.com 
> <mailto:sqlalchemy%2bunsubscr...@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sqlalchemy/CACwCsY4UdMXHJZzJ9zPDoL4y8333MXHyL7qpcrjptV5kz%3Dk9jA%40mail.gmail.com.
> 

-- 
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 sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/d6fd89dc-8e38-4437-9175-a008d9146287%40www.fastmail.com.

Reply via email to