I am pulling my hair out here! I just wasted an hour trying to get this to
work. I already have one set of models working fine. I simply created a new
model (a simple two tables) and am suddenly having nothing but trouble! Try
as I might, I keep getting the following errors:
- sqlalchemy.exc.NoForeignKeysError: Can't find any foreign key
relationships between 'clients' and 'clients_redirects'.
- sqlalchemy.exc.NoForeignKeysError: Could not determine join condition
between parent/child tables on relationship Client.redirects - there are no
foreign keys linking these tables.
But the keys are there!! What am I doing wrong?
class Client(Base):
__tablename__ = 'clients'
clientid = Column(Integer, primary_key=True)
clientname = Column(String)
app_id = Column(String)
app_secret = Column(String)
description = Column(String)
redirects = relationship("Redirects", back_populates="client")
class Redirects(Base):
__tablename__ = 'clients_redirects'
id = Column(Integer, primary_key=True)
clientid = Column(Integer, ForeignKey('client.clientid'))
URI = Column(String)
client = relationship("Client", back_populates="redirects")
CREATE TABLE `clients` (
`clientid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`clientname` varchar(255) NOT NULL,
`app_id` varchar(64) NOT NULL,
`app_secret` varchar(128) NOT NULL,
`description` text,
PRIMARY KEY (`clientid`),
UNIQUE KEY `idx_name` (`clientname`),
UNIQUE KEY `idx_appid` (`app_id`),
KEY `idx_secret` (`app_secret`),
FULLTEXT KEY `idx_description` (`description`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `clients_redirects` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`clientid` int(10) unsigned NOT NULL,
`URI` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_uri` (`URI`),
KEY `fk_clientid_redirects` (`clientid`),
CONSTRAINT `fk_clientid_redirects` FOREIGN KEY (`clientid`) REFERENCES
`clients` (`clientid`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.