static function schema()
{
self::$pdo->beginTransaction();
//
if (self::driver() === 'sqlite') {
$p = "INTEGER PRIMARY KEY AUTOINCREMENT";
}
if (self::driver() === 'mysql') {
$p = "INTEGER PRIMARY KEY AUTO_INCREMENT";
}
if (self::driver() === 'pgsql') {
self::$db->setIdentifierDelimiter('"');
$p = "SERIAL PRIMARY KEY";
}
self::query("DROP TABLE IF EXISTS " . self::quoteIdentifier("user"));
self::query("CREATE TABLE " . self::quoteIdentifier("user") . " (\n\t\t\tid {$p},\n\t\t\tname varchar(30) NOT NULL\n\t\t)");
self::query("DROP TABLE IF EXISTS post");
self::query("CREATE TABLE post (\n\t\t\tid {$p},\n\t\t\tauthor_id INTEGER DEFAULT NULL,\n\t\t\teditor_id INTEGER DEFAULT NULL,\n\t\t\tis_published INTEGER DEFAULT 0,\n\t\t\tdate_published VARCHAR(30) DEFAULT NULL,\n\t\t\ttitle VARCHAR(30) NOT NULL\n\t\t)");
self::query("DROP TABLE IF EXISTS category");
self::query("CREATE TABLE category (\n\t\t\tid {$p},\n\t\t\ttitle varchar(30) NOT NULL\n\t\t)");
self::query("DROP TABLE IF EXISTS categorization");
self::query("CREATE TABLE categorization (\n\t\t\tcategory_id INTEGER NOT NULL,\n\t\t\tpost_id INTEGER NOT NULL\n\t\t)");
self::query("DROP TABLE IF EXISTS dummy");
self::query("CREATE TABLE dummy (\n\t\t\tid {$p},\n\t\t\ttest INTEGER\n\t\t)");
// #20
self::query("DROP TABLE IF EXISTS " . self::quoteIdentifier("TABLES"));
self::query("CREATE TABLE " . self::quoteIdentifier("TABLES") . " (\n\t\t\tTABLE_NAME varchar(30) NOT NULL,\n\t\t\tTABLE_SCHEMA varchar(30) NOT NULL\n\t\t)");
self::$pdo->commit();
}