Ho una relazione molti a uno tra la tabella Userownedshare
e la tabella Share
.La regola di dipendenza ha tentato di eliminare la colonna chiave primaria in SQL-Alchemy quando si tenta di eliminare il record
Quando si elimina una voce di Userownedshare
dal database ottengo il seguente errore: AssertionError: Dependency rule tried to blank-out primary key column 'share.ticker'
questo ha un senso come il campo ticker
in Userownedshare è una chiave esterna nella tabella Share
. Tuttavia non riesco a capire come risolvere questo errore. Penso di voler impostare una cancellazione a cascata quando una voce Share
è orfana ma non riesco a capire come farlo, ho letto la documentazione, ma mi sono ritrovato con diversi tipi di errori quindi penso di mancare qualcosa di banale . Spero che qualcuno possa aiutarti, grazie!
Ecco il mio codice:
class Userownedshare(db.Model):
id = db.Column(db.Integer, primary_key=True)
ticker = db.Column(db.String(20), db.ForeignKey('share.ticker'))
user = db.Column(db.String, db.ForeignKey('user.username'))
quantity = db.Column(db.Integer, nullable=False)
dividends = db.Column(db.Float, server_default="0.0")
triggerlevel = db.Column(db.Integer)
smsalert = db.Column(db.Boolean)
emailalert = db.Column(db.Boolean)
portfolioid = db.Column(db.String(50))
name = db.relationship('Share', backref='userownedshare' , foreign_keys=[ticker])
class Share(db.Model):
id = db.Column(db.Integer)
name = db.Column(db.String(50), nullable=False)
ticker = db.Column(db.String(50), db.ForeignKey('userownedshare.ticker'), primary_key=True)
tickermatch = db.relationship('Userownedshare', backref='share', foreign_keys=[ticker])