UPGRADING: Create foreign key after modifying column

We cannot change a column after creating a foreign key:

    ERROR 1832 (HY000): Cannot change column 'PackageBaseID': used in a
    foreign key constraint 'Packages_ibfk_1'

Delay the "ADD FOREIGN KEY" command to fix this.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
Lukas Fleischer 2014-05-27 15:32:18 +02:00
parent e5463c962c
commit b26b5bba47

View file

@ -86,11 +86,11 @@ ALTER TABLE Packages
7. Add package base references to the Packages table:
----
ALTER TABLE Packages
ADD COLUMN PackageBaseID INTEGER UNSIGNED NULL,
ADD FOREIGN KEY (PackageBaseID) REFERENCES PackageBases(ID) ON DELETE CASCADE;
ALTER TABLE Packages ADD COLUMN PackageBaseID INTEGER UNSIGNED NULL;
UPDATE Packages SET PackageBaseID = ID;
ALTER TABLE Packages MODIFY PackageBaseID INTEGER UNSIGNED NOT NULL;
ALTER TABLE Packages
MODIFY PackageBaseID INTEGER UNSIGNED NOT NULL,
ADD FOREIGN KEY (PackageBaseID) REFERENCES PackageBases(ID) ON DELETE CASCADE;
----
8. Delete foreign keys from PackageVotes, PackageComments and CommentNotify: