summaryrefslogtreecommitdiff
path: root/models/schema.php
diff options
context:
space:
mode:
Diffstat (limited to 'models/schema.php')
-rw-r--r--models/schema.php71
1 files changed, 71 insertions, 0 deletions
diff --git a/models/schema.php b/models/schema.php
new file mode 100644
index 00000000..3217663a
--- /dev/null
+++ b/models/schema.php
@@ -0,0 +1,71 @@
+<?php
+
+namespace Schema;
+
+function version_1($pdo)
+{
+ $pdo->exec("
+ CREATE TABLE config (
+ language TEXT,
+ webhooks_token TEXT
+ )
+ ");
+
+ $pdo->exec("
+ CREATE TABLE users (
+ id INTEGER PRIMARY KEY,
+ username TEXT,
+ password TEXT,
+ is_admin INTEGER DEFAULT 0,
+ default_project_id DEFAULT 0
+ )
+ ");
+
+ $pdo->exec("
+ CREATE TABLE projects (
+ id INTEGER PRIMARY KEY,
+ name TEXT NOCASE UNIQUE,
+ is_active INTEGER DEFAULT 1
+ )
+ ");
+
+ $pdo->exec("
+ CREATE TABLE columns (
+ id INTEGER PRIMARY KEY,
+ title TEXT,
+ position INTEGER,
+ project_id INTEGER,
+ FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE,
+ UNIQUE (title, project_id)
+ )
+ ");
+
+ $pdo->exec("
+ CREATE TABLE tasks (
+ id INTEGER PRIMARY KEY,
+ title TEXT,
+ description TEXT,
+ date_creation INTEGER,
+ color_id TEXT,
+ project_id INTEGER,
+ column_id INTEGER,
+ owner_id INTEGER DEFAULT '0',
+ position INTEGER,
+ is_active INTEGER DEFAULT 1,
+ FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE,
+ FOREIGN KEY(column_id) REFERENCES columns(id) ON DELETE CASCADE
+ )
+ ");
+
+ $pdo->exec("
+ INSERT INTO users
+ (username, password, is_admin)
+ VALUES ('admin', '".\password_hash('admin', PASSWORD_BCRYPT)."', '1')
+ ");
+
+ $pdo->exec("
+ INSERT INTO config
+ (language, webhooks_token)
+ VALUES ('en_US', '".\Model\Config::generateToken()."')
+ ");
+}