[ 'CREATE TABLE IF NOT EXISTS domains ( id INTEGER PRIMARY KEY AUTOINCREMENT, host TEXT NOT NULL UNIQUE, base_url TEXT NOT NULL, label TEXT NULL, is_default INTEGER NOT NULL DEFAULT 0, created_at TEXT NOT NULL )', // SQLite kann eine UNIQUE-Spalte nicht nachtraeglich aendern, // deshalb wird die Tabelle neu aufgebaut. 'PRAGMA foreign_keys = OFF', 'CREATE TABLE links_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, domain_id INTEGER NOT NULL DEFAULT 0, slug TEXT NOT NULL, target_url TEXT NOT NULL, title TEXT NULL, is_active INTEGER NOT NULL DEFAULT 1, click_count INTEGER NOT NULL DEFAULT 0, last_clicked_at TEXT NULL, created_at TEXT NOT NULL, updated_at TEXT NOT NULL, UNIQUE (domain_id, slug) )', 'INSERT INTO links_new (id, domain_id, slug, target_url, title, is_active, click_count, last_clicked_at, created_at, updated_at) SELECT id, 0, slug, target_url, title, is_active, click_count, last_clicked_at, created_at, updated_at FROM links', 'DROP TABLE links', 'ALTER TABLE links_new RENAME TO links', 'CREATE INDEX IF NOT EXISTS idx_links_created_at ON links (created_at)', 'CREATE INDEX IF NOT EXISTS idx_links_domain ON links (domain_id)', 'PRAGMA foreign_keys = ON', ], 'mysql' => [ 'CREATE TABLE IF NOT EXISTS domains ( id INT AUTO_INCREMENT PRIMARY KEY, host VARCHAR(190) NOT NULL, base_url VARCHAR(255) NOT NULL, label VARCHAR(255) NULL, is_default TINYINT(1) NOT NULL DEFAULT 0, created_at DATETIME NOT NULL, UNIQUE KEY uniq_domains_host (host) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4', 'ALTER TABLE links ADD COLUMN domain_id INT NOT NULL DEFAULT 0', 'ALTER TABLE links DROP INDEX uniq_links_slug', 'ALTER TABLE links ADD UNIQUE KEY uniq_links_domain_slug (domain_id, slug)', 'ALTER TABLE links ADD INDEX idx_links_domain (domain_id)', ], ];