Skip to content

Commit 569a4f7

Browse files
authored
Merge pull request #2683 from niranjan94/enhancement/added-on-delte
Added proper on delete contraints to all Foreign Keys
2 parents 5f6d2b1 + e470739 commit 569a4f7

File tree

8 files changed

+115
-18
lines changed

8 files changed

+115
-18
lines changed

app/models/email_notifications.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ class EmailNotification(db.Model):
1010
new_paper = db.Column(db.Integer)
1111
session_accept_reject = db.Column(db.Integer)
1212
session_schedule = db.Column(db.Integer)
13-
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
14-
event_id = db.Column(db.Integer, db.ForeignKey('events.id'))
13+
user_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'))
14+
event_id = db.Column(db.Integer, db.ForeignKey('events.id', ondelete='CASCADE'))
1515

1616
def __init__(self,
1717
next_event=0,

app/models/event.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ class Event(db.Model):
7979
topic = db.Column(db.String)
8080
sub_topic = db.Column(db.String)
8181
ticket_url = db.Column(db.String)
82-
creator_id = db.Column(db.Integer, db.ForeignKey('user.id'))
82+
creator_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'))
8383
creator = db.relationship('User')
8484
db.UniqueConstraint('track.name')
8585
code_of_conduct = db.Column(db.String)

app/models/order.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
class OrderTicket(db.Model):
88
__tablename__ = 'orders_tickets'
9-
order_id = db.Column(db.Integer, db.ForeignKey('orders.id'), primary_key=True)
10-
ticket_id = db.Column(db.Integer, db.ForeignKey('ticket.id'), primary_key=True)
9+
order_id = db.Column(db.Integer, db.ForeignKey('orders.id', ondelete='CASCADE'), primary_key=True)
10+
ticket_id = db.Column(db.Integer, db.ForeignKey('ticket.id', ondelete='CASCADE'), primary_key=True)
1111
quantity = db.Column(db.Integer)
1212
ticket = db.relationship('Ticket', backref='order_tickets')
1313

@@ -23,9 +23,9 @@ class Order(db.Model):
2323
state = db.Column(db.String)
2424
country = db.Column(db.String)
2525
zipcode = db.Column(db.String)
26-
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
27-
event_id = db.Column(db.Integer, db.ForeignKey('events.id'))
28-
marketer_id = db.Column(db.Integer, db.ForeignKey('user.id'))
26+
user_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='SET NULL'))
27+
event_id = db.Column(db.Integer, db.ForeignKey('events.id', ondelete='SET NULL'))
28+
marketer_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='SET NULL'))
2929
created_at = db.Column(db.DateTime)
3030
completed_at = db.Column(db.DateTime, nullable=True, default=None)
3131
transaction_id = db.Column(db.String)

app/models/system_role.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ class UserSystemRole(db.Model):
3838
__tablename__ = 'user_system_role'
3939

4040
id = db.Column(db.Integer, primary_key=True)
41-
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
41+
user_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'))
4242
user = db.relationship('User', backref='sys_roles')
4343

44-
role_id = db.Column(db.Integer, db.ForeignKey('custom_sys_role.id'))
44+
role_id = db.Column(db.Integer, db.ForeignKey('custom_sys_role.id', ondelete='CASCADE'))
4545
role = db.relationship('CustomSysRole')
4646

4747
def __init__(self, user, role):

app/models/ticket.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
from . import db
33

44
ticket_tags_table = db.Table('association', db.Model.metadata,
5-
db.Column('ticket_id', db.Integer, db.ForeignKey('ticket.id')),
6-
db.Column('ticket_tag_id', db.Integer, db.ForeignKey('ticket_tag.id'))
5+
db.Column('ticket_id', db.Integer, db.ForeignKey('ticket.id', ondelete='CASCADE')),
6+
db.Column('ticket_tag_id', db.Integer, db.ForeignKey('ticket_tag.id', ondelete='CASCADE'))
77
)
88

99

@@ -123,7 +123,7 @@ class TicketTag(db.Model):
123123
id = db.Column(db.Integer, primary_key=True)
124124
name = db.Column(db.String)
125125

126-
event_id = db.Column(db.Integer, db.ForeignKey('events.id'))
126+
event_id = db.Column(db.Integer, db.ForeignKey('events.id', ondelete='CASCADE'))
127127
event = db.relationship('Event', backref='ticket_tags')
128128

129129
def __init__(self, name, event_id):
@@ -147,9 +147,9 @@ class BookedTicket(db.Model):
147147
name='user_ticket_uc'),)
148148

149149
id = db.Column(db.Integer, primary_key=True)
150-
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
150+
user_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'))
151151
user = db.relationship('User', backref='booked_tickets')
152-
ticket_id = db.Column(db.Integer, db.ForeignKey('ticket.id'))
152+
ticket_id = db.Column(db.Integer, db.ForeignKey('ticket.id', ondelete='CASCADE'))
153153
ticket = db.relationship('Ticket', backref='booked_tickets')
154154
quantity = db.Column(db.Integer)
155155

app/models/ticket_holder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class TicketHolder(db.Model):
1717
city = db.Column(db.String)
1818
state = db.Column(db.String)
1919
country = db.Column(db.String)
20-
ticket_id = db.Column(db.Integer, db.ForeignKey('ticket.id'))
20+
ticket_id = db.Column(db.Integer, db.ForeignKey('ticket.id', ondelete='CASCADE'))
2121
order_id = db.Column(db.Integer, db.ForeignKey('orders.id', ondelete='CASCADE'))
2222
order = db.relationship('Order', backref='ticket_holders')
2323
ticket = db.relationship('Ticket', backref='ticket_holders')

app/models/users_events_roles.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ class UsersEventsRoles(db.Model):
88

99
event_id = db.Column(db.Integer, db.ForeignKey('events.id', ondelete='CASCADE'))
1010

11-
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
11+
user_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'))
1212
user = db.relationship("User")
1313

14-
role_id = db.Column(db.Integer, db.ForeignKey('role.id'))
14+
role_id = db.Column(db.Integer, db.ForeignKey('role.id', ondelete='CASCADE'))
1515
role = db.relationship("Role")
1616

1717
def __init__(self, user=None, event=None, role=None, user_id=None, role_id=None, event_id=None):
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
"""empty message
2+
3+
Revision ID: e95a9cd83678
4+
Revises: 3f145ecaf358
5+
Create Date: 2016-12-21 13:17:24.682386
6+
7+
"""
8+
9+
# revision identifiers, used by Alembic.
10+
revision = 'e95a9cd83678'
11+
down_revision = '3f145ecaf358'
12+
13+
from alembic import op
14+
import sqlalchemy as sa
15+
import sqlalchemy_utils
16+
17+
18+
def upgrade():
19+
### commands auto generated by Alembic - please adjust! ###
20+
op.drop_constraint(u'association_ticket_tag_id_fkey', 'association', type_='foreignkey')
21+
op.drop_constraint(u'association_ticket_id_fkey', 'association', type_='foreignkey')
22+
op.create_foreign_key(None, 'association', 'ticket_tag', ['ticket_tag_id'], ['id'], ondelete='CASCADE')
23+
op.create_foreign_key(None, 'association', 'ticket', ['ticket_id'], ['id'], ondelete='CASCADE')
24+
op.drop_constraint(u'booked_ticket_ticket_id_fkey', 'booked_ticket', type_='foreignkey')
25+
op.drop_constraint(u'booked_ticket_user_id_fkey', 'booked_ticket', type_='foreignkey')
26+
op.create_foreign_key(None, 'booked_ticket', 'user', ['user_id'], ['id'], ondelete='CASCADE')
27+
op.create_foreign_key(None, 'booked_ticket', 'ticket', ['ticket_id'], ['id'], ondelete='CASCADE')
28+
op.drop_constraint(u'email_notification_user_id_fkey', 'email_notification', type_='foreignkey')
29+
op.drop_constraint(u'email_notification_event_id_fkey', 'email_notification', type_='foreignkey')
30+
op.create_foreign_key(None, 'email_notification', 'events', ['event_id'], ['id'], ondelete='CASCADE')
31+
op.create_foreign_key(None, 'email_notification', 'user', ['user_id'], ['id'], ondelete='CASCADE')
32+
op.drop_constraint(u'events_creator_id_fkey', 'events', type_='foreignkey')
33+
op.create_foreign_key(None, 'events', 'user', ['creator_id'], ['id'], ondelete='CASCADE')
34+
op.drop_constraint(u'orders_user_id_fkey', 'orders', type_='foreignkey')
35+
op.drop_constraint(u'orders_event_id_fkey', 'orders', type_='foreignkey')
36+
op.drop_constraint(u'orders_marketer_id_fkey', 'orders', type_='foreignkey')
37+
op.create_foreign_key(None, 'orders', 'user', ['marketer_id'], ['id'], ondelete='SET NULL')
38+
op.create_foreign_key(None, 'orders', 'user', ['user_id'], ['id'], ondelete='SET NULL')
39+
op.create_foreign_key(None, 'orders', 'events', ['event_id'], ['id'], ondelete='SET NULL')
40+
op.drop_constraint(u'orders_tickets_ticket_id_fkey', 'orders_tickets', type_='foreignkey')
41+
op.drop_constraint(u'orders_tickets_order_id_fkey', 'orders_tickets', type_='foreignkey')
42+
op.create_foreign_key(None, 'orders_tickets', 'ticket', ['ticket_id'], ['id'], ondelete='CASCADE')
43+
op.create_foreign_key(None, 'orders_tickets', 'orders', ['order_id'], ['id'], ondelete='CASCADE')
44+
op.drop_constraint(u'ticket_holders_ticket_id_fkey', 'ticket_holders', type_='foreignkey')
45+
op.create_foreign_key(None, 'ticket_holders', 'ticket', ['ticket_id'], ['id'], ondelete='CASCADE')
46+
op.drop_constraint(u'ticket_tag_event_id_fkey', 'ticket_tag', type_='foreignkey')
47+
op.create_foreign_key(None, 'ticket_tag', 'events', ['event_id'], ['id'], ondelete='CASCADE')
48+
op.drop_constraint(u'user_system_role_user_id_fkey', 'user_system_role', type_='foreignkey')
49+
op.drop_constraint(u'user_system_role_role_id_fkey', 'user_system_role', type_='foreignkey')
50+
op.create_foreign_key(None, 'user_system_role', 'custom_sys_role', ['role_id'], ['id'], ondelete='CASCADE')
51+
op.create_foreign_key(None, 'user_system_role', 'user', ['user_id'], ['id'], ondelete='CASCADE')
52+
op.drop_constraint(u'users_events_roles_role_id_fkey', 'users_events_roles', type_='foreignkey')
53+
op.drop_constraint(u'users_events_roles_user_id_fkey', 'users_events_roles', type_='foreignkey')
54+
op.create_foreign_key(None, 'users_events_roles', 'role', ['role_id'], ['id'], ondelete='CASCADE')
55+
op.create_foreign_key(None, 'users_events_roles', 'user', ['user_id'], ['id'], ondelete='CASCADE')
56+
### end Alembic commands ###
57+
58+
59+
def downgrade():
60+
### commands auto generated by Alembic - please adjust! ###
61+
op.drop_constraint(None, 'users_events_roles', type_='foreignkey')
62+
op.drop_constraint(None, 'users_events_roles', type_='foreignkey')
63+
op.create_foreign_key(u'users_events_roles_user_id_fkey', 'users_events_roles', 'user', ['user_id'], ['id'])
64+
op.create_foreign_key(u'users_events_roles_role_id_fkey', 'users_events_roles', 'role', ['role_id'], ['id'])
65+
op.drop_constraint(None, 'user_system_role', type_='foreignkey')
66+
op.drop_constraint(None, 'user_system_role', type_='foreignkey')
67+
op.create_foreign_key(u'user_system_role_role_id_fkey', 'user_system_role', 'custom_sys_role', ['role_id'], ['id'])
68+
op.create_foreign_key(u'user_system_role_user_id_fkey', 'user_system_role', 'user', ['user_id'], ['id'])
69+
op.drop_constraint(None, 'ticket_tag', type_='foreignkey')
70+
op.create_foreign_key(u'ticket_tag_event_id_fkey', 'ticket_tag', 'events', ['event_id'], ['id'])
71+
op.drop_constraint(None, 'ticket_holders', type_='foreignkey')
72+
op.create_foreign_key(u'ticket_holders_ticket_id_fkey', 'ticket_holders', 'ticket', ['ticket_id'], ['id'])
73+
op.drop_constraint(None, 'orders_tickets', type_='foreignkey')
74+
op.drop_constraint(None, 'orders_tickets', type_='foreignkey')
75+
op.create_foreign_key(u'orders_tickets_order_id_fkey', 'orders_tickets', 'orders', ['order_id'], ['id'])
76+
op.create_foreign_key(u'orders_tickets_ticket_id_fkey', 'orders_tickets', 'ticket', ['ticket_id'], ['id'])
77+
op.drop_constraint(None, 'orders', type_='foreignkey')
78+
op.drop_constraint(None, 'orders', type_='foreignkey')
79+
op.drop_constraint(None, 'orders', type_='foreignkey')
80+
op.create_foreign_key(u'orders_marketer_id_fkey', 'orders', 'user', ['marketer_id'], ['id'])
81+
op.create_foreign_key(u'orders_event_id_fkey', 'orders', 'events', ['event_id'], ['id'])
82+
op.create_foreign_key(u'orders_user_id_fkey', 'orders', 'user', ['user_id'], ['id'])
83+
op.drop_constraint(None, 'events', type_='foreignkey')
84+
op.create_foreign_key(u'events_creator_id_fkey', 'events', 'user', ['creator_id'], ['id'])
85+
op.drop_constraint(None, 'email_notification', type_='foreignkey')
86+
op.drop_constraint(None, 'email_notification', type_='foreignkey')
87+
op.create_foreign_key(u'email_notification_event_id_fkey', 'email_notification', 'events', ['event_id'], ['id'])
88+
op.create_foreign_key(u'email_notification_user_id_fkey', 'email_notification', 'user', ['user_id'], ['id'])
89+
op.drop_constraint(None, 'booked_ticket', type_='foreignkey')
90+
op.drop_constraint(None, 'booked_ticket', type_='foreignkey')
91+
op.create_foreign_key(u'booked_ticket_user_id_fkey', 'booked_ticket', 'user', ['user_id'], ['id'])
92+
op.create_foreign_key(u'booked_ticket_ticket_id_fkey', 'booked_ticket', 'ticket', ['ticket_id'], ['id'])
93+
op.drop_constraint(None, 'association', type_='foreignkey')
94+
op.drop_constraint(None, 'association', type_='foreignkey')
95+
op.create_foreign_key(u'association_ticket_id_fkey', 'association', 'ticket', ['ticket_id'], ['id'])
96+
op.create_foreign_key(u'association_ticket_tag_id_fkey', 'association', 'ticket_tag', ['ticket_tag_id'], ['id'])
97+
### end Alembic commands ###

0 commit comments

Comments
 (0)