From 830635c5a936c916ceb47fc35ee6c9c0cb653735 Mon Sep 17 00:00:00 2001 From: Shish Date: Wed, 30 Dec 2009 08:54:04 +0000 Subject: [PATCH] preliminary image locking --- core/database.class.php | 18 ++++++++++++++++-- ext/upgrade/main.php | 9 ++++++++- install.php | 2 +- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/core/database.class.php b/core/database.class.php index 57a91073..70103f69 100644 --- a/core/database.class.php +++ b/core/database.class.php @@ -54,6 +54,10 @@ class DBEngine { public function init($db) {} + public function scoreql_to_sql($scoreql) { + return $scoreql; + } + public function create_table_sql($name, $data) { return "CREATE TABLE $name ($data)"; } @@ -65,7 +69,7 @@ class MySQL extends DBEngine { $db->Execute("SET NAMES utf8;"); } - public function create_table_sql($name, $data) { + public function scoreql_to_sql($data) { $data = str_replace("SCORE_AIPK", "INTEGER PRIMARY KEY auto_increment", $data); $data = str_replace("SCORE_INET", "CHAR(15)", $data); $data = str_replace("SCORE_BOOL_Y", "'Y'", $data); @@ -73,6 +77,11 @@ class MySQL extends DBEngine { $data = str_replace("SCORE_BOOL", "ENUM('Y', 'N')", $data); $data = str_replace("SCORE_DATETIME", "DATETIME", $data); $data = str_replace("SCORE_NOW", "\"1970-01-01\"", $data); + return $data; + } + + public function create_table_sql($name, $data) { + $data = $this->scoreql_to_sql($data); $ctes = "TYPE=InnoDB DEFAULT CHARSET='utf8'"; return "CREATE TABLE $name ($data) $ctes"; } @@ -80,7 +89,7 @@ class MySQL extends DBEngine { class PostgreSQL extends DBEngine { var $name = "pgsql"; - public function create_table_sql($name, $data) { + public function scoreql_to_sql($data) { $data = str_replace("SCORE_AIPK", "SERIAL PRIMARY KEY", $data); $data = str_replace("SCORE_INET", "INET", $data); $data = str_replace("SCORE_BOOL_Y", "'t'", $data); @@ -88,6 +97,11 @@ class PostgreSQL extends DBEngine { $data = str_replace("SCORE_BOOL", "BOOL", $data); $data = str_replace("SCORE_DATETIME", "TIMESTAMP", $data); $data = str_replace("SCORE_NOW", "current_time", $data); + return $data; + } + + public function create_table_sql($name, $data) { + $data = $this->scoreql_to_sql($data); return "CREATE TABLE $name ($data)"; } } diff --git a/ext/upgrade/main.php b/ext/upgrade/main.php index d4847cf8..1d33c8d3 100644 --- a/ext/upgrade/main.php +++ b/ext/upgrade/main.php @@ -27,11 +27,18 @@ class Upgrade implements Extension { } } $config->set_int("db_version", 7); - log_info("Database at version 7"); + log_info("upgrade", "Database at version 7"); } // TODO: // add column image->locked + if($config->get_int("db_version") < 8) { + $database->execute($database->engine->scoreql_to_sql( + "ALTER TABLE images ADD COLUMN locked SCORE_BOOL NOT NULL DEFAULT SCORE_BOOL_N" + )); + $config->set_int("db_version", 8); + log_info("upgrade", "Database at version 8"); + } } } add_event_listener(new Upgrade(), 5); diff --git a/install.php b/install.php index 674d0598..4216031e 100644 --- a/install.php +++ b/install.php @@ -233,7 +233,7 @@ function create_tables($dsn) { // {{{ FOREIGN KEY (image_id) REFERENCES images(id) ON DELETE CASCADE, FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE ")); - $db->execute("INSERT INTO config(name, value) VALUES('db_version', 7)"); + $db->execute("INSERT INTO config(name, value) VALUES('db_version', 8)"); } $db->Close(); } // }}}