5423e91c2cbec682a01e2ac8b24dc5a5fe578796
[kivitendo-erp.git] / sql / Pg-upgrade2-auth / foreign_key_constraints_on_delete.pl
1 # @tag: foreign_key_constraints_on_delete
2 # @description: Ă„ndert "FOREIGN KEY" constraints auf "ON DELETE CASCADE"
3 # @depends: clients
4 # @ignore: 0
5 package SL::DBUpgrade2::foreign_key_constraints_on_delete;
6
7 use Data::Dumper;
8
9
10 use strict;
11 use utf8;
12
13 use parent qw(SL::DBUpgrade2::Base);
14
15 sub run {
16   my ($self) = @_;
17
18   $self->drop_constraints(schema => 'auth', table => $_) for qw(clients_groups clients_users group_rights session_content user_config user_group);
19
20   my @add_constraints = (
21     qq|ALTER TABLE auth.clients_groups ADD FOREIGN KEY (client_id) REFERENCES auth.clients (id) ON DELETE CASCADE|,
22     qq|ALTER TABLE auth.clients_groups ADD FOREIGN KEY (group_id)  REFERENCES auth."group" (id) ON DELETE CASCADE|,
23
24     qq|ALTER TABLE auth.clients_users ADD FOREIGN KEY (client_id) REFERENCES auth.clients (id) ON DELETE CASCADE|,
25     qq|ALTER TABLE auth.clients_users ADD FOREIGN KEY (user_id)   REFERENCES auth."user"  (id) ON DELETE CASCADE|,
26
27     qq|ALTER TABLE auth.group_rights ADD FOREIGN KEY (group_id) REFERENCES auth."group" (id) ON DELETE CASCADE|,
28
29
30     qq|ALTER TABLE auth.session_content ADD FOREIGN KEY (session_id) REFERENCES auth.session (id) ON DELETE CASCADE|,
31
32     qq|ALTER TABLE auth.user_config ADD FOREIGN KEY (user_id) REFERENCES auth."user" (id) ON DELETE CASCADE|,
33
34     qq|ALTER TABLE auth.user_group ADD FOREIGN KEY (user_id)  REFERENCES auth."user"  (id) ON DELETE CASCADE|,
35     qq|ALTER TABLE auth.user_group ADD FOREIGN KEY (group_id) REFERENCES auth."group" (id) ON DELETE CASCADE|,
36   );
37
38   $self->db_query($_) for @add_constraints;
39
40   return 1;
41 }
42
43 1;