this error means that your Server class has a column attribute which you would access as Server.updatedDate. Your ServerUtilization subclass has another column attribute which you would also access as ServerUtilization.updatedDate.
the problem arises in that ServerUtilization refers to the combination of two rows, one inthe "Server" table and the other in "ServerUtilization" . If you had rows in these two tables where updatedDate were different, the ServerUtilization entity would be unable to refer to these two separate values as there is no mapped attribute that separates them. This means that if you were to say, some_server_utilization.updatedDate = <somedate> , that date value would be *copied* to both the serverutilization and server tables, even though you have not given instructions to the ORM that these two columns should always be identical. the ORM wants explicit instructions on how to handle these two different columns. the two examples given in the FAQ entry can apply directly to your model as either separating them: class ServerUtilization(Server): # ... utilization_updatedAt = Column("updatedAt", ...) or combining them: class ServerUtilization(Server): # ... updatedAt = column_property(Column("updatedAt", ...), Server.updatedAt) On Tue, Dec 22, 2020, at 12:46 PM, Larry Martell wrote: > I have these 2 models: > > class Server(Base): > __tablename__ = 'Server' > > serverName = Column(String(50, 'SQL_Latin1_General_CP1_CI_AS'), > primary_key=True) > serverTypeEnumID = Column(Integer) > serverComponentEnumID = Column(ForeignKey('Enumeration.enumID')) > serverEnvironmentEnumID = Column(ForeignKey('Enumeration.enumID'), > nullable=False) > serverLifecycleEnumID = Column(ForeignKey('Enumeration.enumID')) > processorType = Column(String(50, 'SQL_Latin1_General_CP1_CI_AS')) > processorSpeedInGhz = Column(DECIMAL(9, 2)) > physicalProcessorCount = Column(Integer) > corePerProcessorCount = Column(Integer) > coreCount = Column(Integer) > logicalProcessorCount = Column(Integer) > memoryInGB = Column(DECIMAL(19, 2)) > serverIsVirtual = Column(String(1, 'SQL_Latin1_General_CP1_CI_AS')) > serverEndOfLifeDate = Column(DateTime) > locationCode = Column(ForeignKey('Location.locationCode')) > serverOSProductID = Column(ForeignKey('ProductVersion.productVersionID')) > updatedDate = Column(DateTime, nullable=False, > server_default=text("(getdate())")) > > Location = relationship('Location') > Enumeration = relationship('Enumeration', > primaryjoin='Server.serverComponentEnumID == Enumeration.enumID') > Enumeration1 = relationship('Enumeration', > primaryjoin='Server.serverEnvironmentEnumID == Enumeration.enumID') > Enumeration2 = relationship('Enumeration', > primaryjoin='Server.serverLifecycleEnumID == Enumeration.enumID') > ProductVersion = relationship('ProductVersion') > Storage = relationship('Storage', secondary=lambda: > ServerStorage.__table__) > > class ServerUtilization(Server): > __tablename__ = 'ServerUtilization' > > serverName = Column(ForeignKey('Server.serverName'), primary_key=True) > utilizationProfile = Column(String(50, > 'SQL_Latin1_General_CP1_CI_AS'), nullable=False) > utilizationCpuPercent = Column(DECIMAL(9, 2)) > utilizationMemoryPercent = Column(DECIMAL(9, 2)) > utilizationStoragePercent = Column(DECIMAL(9, 2)) > updatedDate = Column(DateTime, nullable=False, > server_default=text("(getdate())")) > > And I get this message: > > /Users/lmartell/Data-Exchange-Consolidation/scripts/venv/lib/python3.8/site-packages/sqlalchemy/orm/mapper.py:1899: > SAWarning: Implicitly combining column Server.updatedDate with column > ServerUtilization.updatedDate under attribute 'updatedDate'. Please > configure one or more attributes for these same-named columns > explicitly. > > I read this: > https://docs.sqlalchemy.org/en/13/faq/ormconfiguration.html#i-m-getting-a-warning-or-error-about-implicitly-combining-column-x-under-attribute-y > > But it's not clear to me why I am getting the message in this case, > nor how to fix it. > > -- > 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/CACwCsY7W0uHskGdoMconkCVJSy8sw21U%3DkSfE%2BkYU0mN8zKDsw%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/c4cb8116-3bea-4d59-92d2-9fdfe1baa291%40www.fastmail.com.