CREATE TABLE `config` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `key` VARCHAR(40) NOT NULL, `value` VARCHAR(40) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE (`key`) ) ENGINE INNODB DEFAULT CHARSET=utf8; INSERT INTO `config` (`key`,`value`) VALUES ('schema_version', '8'); CREATE TABLE `session_keys` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `key` VARCHAR(160) NOT NULL, `date` DATETIME NOT NULL DEFAULT 0, PRIMARY KEY (`id`), INDEX (`date`) ) ENGINE INNODB DEFAULT CHARSET=utf8; CREATE TABLE `rooms` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(120) NOT NULL, `create_date` DATETIME DEFAULT NULL, `last_activity` DATETIME DEFAULT NULL, `locked` TINYINT UNSIGNED DEFAULT '0', `ask_for_name` TINYINT UNSIGNED DEFAULT '0', `join_password` VARCHAR(160) DEFAULT NULL, `owner_password` VARCHAR(160) DEFAULT NULL, `etherpad_group` VARCHAR(40) DEFAULT NULL, `token` VARCHAR(160) NOT NULL, `realm` VARCHAR(160) DEFAULT NULL, `persistent` TINYINT UNSIGNED DEFAULT '0', `max_members` TINYINT UNSIGNED DEFAULT '0', PRIMARY KEY (`id`), UNIQUE (`name`), INDEX (`last_activity`) ) ENGINE INNODB DEFAULT CHARSET=utf8; CREATE TABLE `email_notifications` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `room_id` INT UNSIGNED NOT NULL, `email` VARCHAR(254), PRIMARY KEY (`id`), UNIQUE (`room_id`, `email`), FOREIGN KEY (`room_id`) REFERENCES `rooms` (`id`) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE INNODB DEFAULT CHARSET=utf8; CREATE TABLE `email_invitations` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `room_id` INT UNSIGNED NOT NULL, `email` VARCHAR(254) NOT NULL, `token` VARCHAR(160) NOT NULL, `from` VARCHAR(60) NOT NULL, `response` VARCHAR(20) DEFAULT NULL, `message` TEXT DEFAULT NULL, `processed` TINYINT DEFAULT '0', `date` DATETIME DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE (`token`), FOREIGN KEY (`room_id`) REFERENCES `rooms` (`id`) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE INNODB DEFAULT CHARSET=utf8; CREATE TABLE `api_keys` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `token` VARCHAR(160) NOT NULL, `admin` TINYINT UNSIGNED DEFAULT '0', `not_after` DATETIME DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE (`token`), INDEX (`not_after`) ) ENGINE INNODB DEFAULT CHARSET=utf8; CREATE TABLE `room_keys` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `room_id` INT UNSIGNED NOT NULL, `key_id` INT UNSIGNED NOT NULL, `role` ENUM('owner', 'participant') DEFAULT 'participant', PRIMARY KEY (`id`), UNIQUE (`room_id`, `key_id`), FOREIGN KEY (`room_id`) REFERENCES `rooms` (`id`) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (`key_id`) REFERENCES `api_keys` (`id`) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE INNODB DEFAULT CHARSET=utf8; CREATE TABLE `audit` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `date` DATETIME NOT NULL, `event` VARCHAR(255) NOT NULL, `from_ip` VARCHAR(45) DEFAULT NULL, `user` VARCHAR(255) DEFAULT NULL, `message` TEXT NOT NULL, PRIMARY KEY (`id`), INDEX (`date`), INDEX (`event`), INDEX (`from_ip`), INDEX (`user`) ) ENGINE INNODB DEFAULT CHARSET=utf8;