From 37bffe06890febfea82a28cc7a4cd4d754e87b0a Mon Sep 17 00:00:00 2001 From: Shish Date: Tue, 7 Feb 2012 19:26:40 +0000 Subject: [PATCH] actually, ext-specific DB changes should live in that ext... --- contrib/favorites/main.php | 11 +++++++++++ contrib/pm/main.php | 13 ++++++++++++- ext/upgrade/main.php | 13 ------------- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/contrib/favorites/main.php b/contrib/favorites/main.php index ad37edd0..15f266c2 100644 --- a/contrib/favorites/main.php +++ b/contrib/favorites/main.php @@ -152,6 +152,17 @@ class Favorites extends SimpleExtension { "); $config->set_int("ext_favorites_version", 1); } + + if($config->get_int("ext_favorites_version") < 2) { + log_info("favorites", "Cleaning user favourites"); + $database->Execute("DELETE FROM user_favorites WHERE user_id NOT IN (SELECT id FROM users)"); + $database->Execute("DELETE FROM user_favorites WHERE image_id NOT IN (SELECT id FROM images)"); + + log_info("favorites", "Adding foreign keys to user favourites"); + $database->Execute("ALTER TABLE user_favorites ADD CONSTRAINT foreign_user_favorites_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;"); + $database->Execute("ALTER TABLE user_favorites ADD CONSTRAINT user_favorites_image_id FOREIGN KEY (image_id) REFERENCES images(id) ON DELETE CASCADE;"); + $config->set_int("ext_favorites_version", 2); + } } private function add_vote($image_id, $user_id, $do_set) { diff --git a/contrib/pm/main.php b/contrib/pm/main.php index e0190f1a..ae75d228 100755 --- a/contrib/pm/main.php +++ b/contrib/pm/main.php @@ -57,11 +57,22 @@ class PrivMsg extends SimpleExtension { subject VARCHAR(64) NOT NULL, message TEXT NOT NULL, is_read SCORE_BOOL NOT NULL DEFAULT SCORE_BOOL_N, - INDEX (to_id) + INDEX (to_id), + FOREIGN KEY (from_id) REFERENCES users(id) ON DELETE CASCADE, + FOREIGN KEY (to_id) REFERENCES users(id) ON DELETE CASCADE "); $config->set_int("pm_version", 1); log_info("pm", "extension installed"); } + + if($config->get_int("pm_version") < 2) { + log_info("pm", "Adding foreign keys to private messages"); + $database->Execute("ALTER TABLE private_message + ADD CONSTRAINT foreign_private_message_from_id FOREIGN KEY (from_id) REFERENCES users(id) ON DELETE CASCADE, + ADD CONSTRAINT foreign_private_message_to_id FOREIGN KEY (to_id) REFERENCES users(id) ON DELETE CASCADE;"); + $config->set_int("pm_version", 2); + log_info("pm", "extension installed"); + } } /* diff --git a/ext/upgrade/main.php b/ext/upgrade/main.php index 81b79f70..35854e1d 100644 --- a/ext/upgrade/main.php +++ b/ext/upgrade/main.php @@ -51,19 +51,6 @@ class Upgrade extends SimpleExtension { if($config->get_int("db_version") < 10) { $config->set_bool("in_upgrade", true); - log_info("upgrade", "Cleaning user favourites"); - $database->Execute("DELETE FROM user_favorites WHERE user_id NOT IN (SELECT id FROM users)"); - $database->Execute("DELETE FROM user_favorites WHERE image_id NOT IN (SELECT id FROM images)"); - - log_info("upgrade", "Adding foreign keys to user favourites"); - $database->Execute("ALTER TABLE user_favorites ADD CONSTRAINT foreign_user_favorites_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;"); - $database->Execute("ALTER TABLE user_favorites ADD CONSTRAINT user_favorites_image_id FOREIGN KEY (image_id) REFERENCES images(id) ON DELETE CASCADE;"); - - log_info("upgrade", "Adding foreign keys to private messages"); - $database->Execute("ALTER TABLE private_message - ADD CONSTRAINT foreign_private_message_from_id FOREIGN KEY (from_id) REFERENCES users(id) ON DELETE CASCADE, - ADD CONSTRAINT foreign_private_message_to_id FOREIGN KEY (to_id) REFERENCES users(id) ON DELETE CASCADE;"); - log_info("upgrade", "Adding foreign keys to images"); $database->Execute("ALTER TABLE images ADD CONSTRAINT foreign_images_owner_id FOREIGN KEY (owner_id) REFERENCES users(id) ON DELETE RESTRICT");