forum FKs

This commit is contained in:
Shish 2012-03-11 02:03:28 +00:00
parent 9e65732ea1
commit 9c1f544343

View File

@ -14,8 +14,7 @@ class Forum extends Extension {
// shortcut to latest // shortcut to latest
if ($config->get_int("forum_version") < 1) if ($config->get_int("forum_version") < 1) {
{
$database->create_table("forum_threads", " $database->create_table("forum_threads", "
id SCORE_AIPK, id SCORE_AIPK,
sticky SCORE_BOOL NOT NULL DEFAULT SCORE_BOOL_N, sticky SCORE_BOOL NOT NULL DEFAULT SCORE_BOOL_N,
@ -23,20 +22,22 @@ class Forum extends Extension {
user_id INTEGER NOT NULL, user_id INTEGER NOT NULL,
date DATETIME NOT NULL, date DATETIME NOT NULL,
uptodate DATETIME NOT NULL, uptodate DATETIME NOT NULL,
INDEX (date) INDEX (date),
FOREIGN KEY (user_id) REFERENCES users(id) ON UPDATE CASCADE ON DELETE RESTRICT
"); ");
$database->create_table("forum_posts", $database->create_table("forum_posts", "
" id SCORE_AIPK, id SCORE_AIPK,
thread_id INTEGER NOT NULL, thread_id INTEGER NOT NULL,
user_id INTEGER NOT NULL, user_id INTEGER NOT NULL,
date DATETIME NOT NULL, date DATETIME NOT NULL,
message TEXT, message TEXT,
INDEX (date), INDEX (date),
FOREIGN KEY (user_id) REFERENCES users(id) ON UPDATE CASCADE ON DELETE RESTRICT,
FOREIGN KEY (thread_id) REFERENCES forum_threads (id) ON UPDATE CASCADE ON DELETE CASCADE FOREIGN KEY (thread_id) REFERENCES forum_threads (id) ON UPDATE CASCADE ON DELETE CASCADE
"); ");
$config->set_int("forum_version", 1); $config->set_int("forum_version", 2);
$config->set_int("forumTitleSubString", 25); $config->set_int("forumTitleSubString", 25);
$config->set_int("forumThreadsPerPage", 15); $config->set_int("forumThreadsPerPage", 15);
$config->set_int("forumPostsPerPage", 15); $config->set_int("forumPostsPerPage", 15);
@ -45,6 +46,11 @@ class Forum extends Extension {
log_info("forum", "extension installed"); log_info("forum", "extension installed");
} }
if ($config->get_int("forum_version") < 2) {
$database->execute("ALTER TABLE forum_threads ADD FOREIGN KEY (user_id) REFERENCES users(id) ON UPDATE CASCADE ON DELETE RESTRICT");
$database->execute("ALTER TABLE forum_posts ADD FOREIGN KEY (user_id) REFERENCES users(id) ON UPDATE CASCADE ON DELETE RESTRICT");
$config->set_int("forum_version", 2);
}
} }
public function onSetupBuilding(SetupBuildingEvent $event) { public function onSetupBuilding(SetupBuildingEvent $event) {