From 71ff13b0850d9fd4e2d37904700a3342a5731c03 Mon Sep 17 00:00:00 2001 From: Matthew Nickson Date: Sun, 13 Mar 2022 11:37:13 +0000 Subject: [PATCH] Created database schema Signed-off-by: Matthew Nickson --- templates/mysql.sql | 155 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 templates/mysql.sql diff --git a/templates/mysql.sql b/templates/mysql.sql new file mode 100644 index 0000000..6448986 --- /dev/null +++ b/templates/mysql.sql @@ -0,0 +1,155 @@ +START TRANSACTION; + +CREATE TABLE `allocated_ips` ( + `id` int(11) NOT NULL, + `ip` varchar(255) NOT NULL, + `client` varchar(255) NOT NULL +); + +CREATE TABLE `allowed_ips` ( + `id` int(11) NOT NULL, + `ip` varchar(255) NOT NULL, + `client` varchar(255) NOT NULL +); + +CREATE TABLE `clients` ( + `id` varchar(255) NOT NULL, + `private_key` varchar(255) NOT NULL, + `public_key` varchar(255) NOT NULL, + `preshared_key` varchar(255) NOT NULL, + `name` varchar(255) NOT NULL, + `use_server_dns` tinyint(1) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `created_at` varchar(255) NOT NULL, + `updated_at` varchar(255) NOT NULL, + `email` varchar(255) +); + +CREATE TABLE `dns_servers` ( + `id` int(11) NOT NULL, + `ip` varchar(255) NOT NULL, + `config` int(11) NOT NULL +); + +CREATE TABLE `extra_allowed_ips` ( + `id` int(11) NOT NULL, + `ip` varchar(255) NOT NULL, + `client` varchar(255) NOT NULL +); + +CREATE TABLE `global_settings` ( + `id` int(11) NOT NULL, + `endpoint_address` varchar(255) NOT NULL, + `mtu` varchar(255) NOT NULL, + `persistent_keepalive` varchar(255) NOT NULL, + `config_file_path` varchar(255) NOT NULL, + `updated_at` varchar(255) NOT NULL +); + +CREATE TABLE `interfaces` ( + `id` int(11) NOT NULL, + `listen_port` varchar(5) NOT NULL, + `updated_at` varchar(255) NOT NULL, + `post_up` varchar(255) NOT NULL, + `post_down` varchar(255) NOT NULL +); + +CREATE TABLE `interface_addresses` ( + `id` int(11) NOT NULL, + `ip` varchar(255) NOT NULL, + `interface` int(11) NOT NULL +); + +CREATE TABLE `keypair` ( + `id` int(11) NOT NULL, + `private_key` varchar(255) NOT NULL, + `public_key` varchar(255) NOT NULL, + `updated_at` varchar(255) NOT NULL +); + +CREATE TABLE `users` ( + `id` int(11) NOT NULL, + `name` varchar(255) NOT NULL, + `password` varchar(255) NOT NULL +); + + +ALTER TABLE `allocated_ips` + ADD PRIMARY KEY (`id`), + ADD KEY `client` (`client`); + +ALTER TABLE `allowed_ips` + ADD PRIMARY KEY (`id`), + ADD KEY `client` (`client`); + +ALTER TABLE `clients` + ADD PRIMARY KEY (`id`); + +ALTER TABLE `dns_servers` + ADD PRIMARY KEY (`id`), + ADD KEY `config` (`config`); + +ALTER TABLE `extra_allowed_ips` + ADD PRIMARY KEY (`id`), + ADD KEY `client` (`client`); + +ALTER TABLE `global_settings` + ADD PRIMARY KEY (`id`); + +ALTER TABLE `interfaces` + ADD PRIMARY KEY (`id`); + +ALTER TABLE `interface_addresses` + ADD PRIMARY KEY (`id`), + ADD KEY `interface` (`interface`); + +ALTER TABLE `keypair` + ADD PRIMARY KEY (`id`); + +ALTER TABLE `users` + ADD PRIMARY KEY (`id`); + + +ALTER TABLE `allocated_ips` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +ALTER TABLE `allowed_ips` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +ALTER TABLE `dns_servers` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +ALTER TABLE `extra_allowed_ips` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +ALTER TABLE `global_settings` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +ALTER TABLE `interfaces` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +ALTER TABLE `interface_addresses` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +ALTER TABLE `keypair` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +ALTER TABLE `users` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + + +ALTER TABLE `allocated_ips` + ADD CONSTRAINT `allocated_ips_ibfk_1` FOREIGN KEY (`client`) REFERENCES `clients` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE `allowed_ips` + ADD CONSTRAINT `allowed_ips_ibfk_1` FOREIGN KEY (`client`) REFERENCES `clients` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE `dns_servers` + ADD CONSTRAINT `dns_servers_ibfk_1` FOREIGN KEY (`config`) REFERENCES `global_settings` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE `extra_allowed_ips` + ADD CONSTRAINT `extra_allowed_ips_ibfk_1` FOREIGN KEY (`client`) REFERENCES `clients` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE `interface_addresses` + ADD CONSTRAINT `interface_addresses_ibfk_1` FOREIGN KEY (`interface`) REFERENCES `interfaces` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; +COMMIT; \ No newline at end of file