Fix #30, use cascade deletion on domains

master
Pierre Jaury 8 years ago
parent 41f343b1da
commit dcaf3e3473

@ -123,7 +123,8 @@ class Email(Base):
class User(Email):
""" A user is an email address that has a password to access a mailbox.
"""
domain = db.relationship(Domain, backref='users')
domain = db.relationship(Domain,
backref=db.backref('users', cascade='all, delete-orphan'))
password = db.Column(db.String(255), nullable=False)
quota_bytes = db.Column(db.Integer(), nullable=False, default=10**9)
global_admin = db.Column(db.Boolean(), nullable=False, default=False)
@ -186,7 +187,8 @@ class User(Email):
class Alias(Email):
""" An alias is an email address that redirects to some destination.
"""
domain = db.relationship(Domain, backref='aliases')
domain = db.relationship(Domain,
backref=db.backref('aliases', cascade='all, delete-orphan'))
destination = db.Column(CommaSeparatedList, nullable=False)
@ -197,7 +199,8 @@ class Fetch(Base):
id = db.Column(db.Integer(), primary_key=True)
user_email = db.Column(db.String(255), db.ForeignKey(User.email),
nullable=False)
user = db.relationship(User, backref='fetches')
user = db.relationship(User,
backref=db.backref('fetches', cascade='all, delete-orphan'))
protocol = db.Column(db.Enum('imap', 'pop3'), nullable=False)
host = db.Column(db.String(255), nullable=False)
port = db.Column(db.Integer(), nullable=False)

Loading…
Cancel
Save