preliminary image locking

This commit is contained in:
Shish 2009-12-30 08:54:04 +00:00
parent c9283ef010
commit 830635c5a9
3 changed files with 25 additions and 4 deletions

View File

@ -54,6 +54,10 @@ class DBEngine {
public function init($db) {} public function init($db) {}
public function scoreql_to_sql($scoreql) {
return $scoreql;
}
public function create_table_sql($name, $data) { public function create_table_sql($name, $data) {
return "CREATE TABLE $name ($data)"; return "CREATE TABLE $name ($data)";
} }
@ -65,7 +69,7 @@ class MySQL extends DBEngine {
$db->Execute("SET NAMES utf8;"); $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_AIPK", "INTEGER PRIMARY KEY auto_increment", $data);
$data = str_replace("SCORE_INET", "CHAR(15)", $data); $data = str_replace("SCORE_INET", "CHAR(15)", $data);
$data = str_replace("SCORE_BOOL_Y", "'Y'", $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_BOOL", "ENUM('Y', 'N')", $data);
$data = str_replace("SCORE_DATETIME", "DATETIME", $data); $data = str_replace("SCORE_DATETIME", "DATETIME", $data);
$data = str_replace("SCORE_NOW", "\"1970-01-01\"", $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'"; $ctes = "TYPE=InnoDB DEFAULT CHARSET='utf8'";
return "CREATE TABLE $name ($data) $ctes"; return "CREATE TABLE $name ($data) $ctes";
} }
@ -80,7 +89,7 @@ class MySQL extends DBEngine {
class PostgreSQL extends DBEngine { class PostgreSQL extends DBEngine {
var $name = "pgsql"; 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_AIPK", "SERIAL PRIMARY KEY", $data);
$data = str_replace("SCORE_INET", "INET", $data); $data = str_replace("SCORE_INET", "INET", $data);
$data = str_replace("SCORE_BOOL_Y", "'t'", $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_BOOL", "BOOL", $data);
$data = str_replace("SCORE_DATETIME", "TIMESTAMP", $data); $data = str_replace("SCORE_DATETIME", "TIMESTAMP", $data);
$data = str_replace("SCORE_NOW", "current_time", $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)"; return "CREATE TABLE $name ($data)";
} }
} }

View File

@ -27,11 +27,18 @@ class Upgrade implements Extension {
} }
} }
$config->set_int("db_version", 7); $config->set_int("db_version", 7);
log_info("Database at version 7"); log_info("upgrade", "Database at version 7");
} }
// TODO: // TODO:
// add column image->locked // 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); add_event_listener(new Upgrade(), 5);

View File

@ -233,7 +233,7 @@ function create_tables($dsn) { // {{{
FOREIGN KEY (image_id) REFERENCES images(id) ON DELETE CASCADE, FOREIGN KEY (image_id) REFERENCES images(id) ON DELETE CASCADE,
FOREIGN KEY (tag_id) REFERENCES tags(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(); $db->Close();
} // }}} } // }}}