mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Ensure users can be deleted when foreign keys are present
This change is necessary to prevent this: mysql> delete from Users where ID = 112; ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`aur`.`Packages`, CONSTRAINT `Packages_ibfk_2` FOREIGN KEY (`SubmitterUID`) REFERENCES `Users` (`ID`) ON DELETE NO ACTION) As a bonus, due to foreign keys, orphaning of packages will be automatic. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
parent
abd41bbb51
commit
f9eba12312
2 changed files with 3 additions and 3 deletions
|
@ -114,8 +114,9 @@ CREATE TABLE Packages (
|
||||||
INDEX (SubmitterUID),
|
INDEX (SubmitterUID),
|
||||||
INDEX (MaintainerUID),
|
INDEX (MaintainerUID),
|
||||||
FOREIGN KEY (CategoryID) REFERENCES PackageCategories(ID) ON DELETE NO ACTION,
|
FOREIGN KEY (CategoryID) REFERENCES PackageCategories(ID) ON DELETE NO ACTION,
|
||||||
FOREIGN KEY (SubmitterUID) REFERENCES Users(ID) ON DELETE NO ACTION,
|
-- deleting a user will cause packages to be orphaned, not deleted
|
||||||
FOREIGN KEY (MaintainerUID) REFERENCES Users(ID) ON DELETE NO ACTION
|
FOREIGN KEY (SubmitterUID) REFERENCES Users(ID) ON DELETE SET NULL,
|
||||||
|
FOREIGN KEY (MaintainerUID) REFERENCES Users(ID) ON DELETE SET NULL
|
||||||
) ENGINE = InnoDB;
|
) ENGINE = InnoDB;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -801,7 +801,6 @@ function user_suspended( $id )
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This should be expanded to return something
|
* This should be expanded to return something
|
||||||
* TODO: Handle orphaning of user's packages
|
|
||||||
*/
|
*/
|
||||||
function user_delete( $id )
|
function user_delete( $id )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue