From 0c1463c90ce94f5acc9b64b1b7e9948c54bf57c6 Mon Sep 17 00:00:00 2001 From: Spotlight Date: Mon, 3 May 2021 13:36:28 -0500 Subject: [PATCH] Convert to PostgreSQL schema --- config.example.xml | 2 +- database.sql | 251 +++++++++++++++++++++++++++++++-------------- 2 files changed, 173 insertions(+), 80 deletions(-) diff --git a/config.example.xml b/config.example.xml index de6037d..de61b34 100644 --- a/config.example.xml +++ b/config.example.xml @@ -8,7 +8,7 @@ example.com - 127.0.0.1:3306 + 127.0.0.1:5432 username password wiisoap diff --git a/database.sql b/database.sql index d79f974..7e6b415 100644 --- a/database.sql +++ b/database.sql @@ -1,91 +1,184 @@ -/* - -< Database Template File > -This file automatically adds the default database and tables. -WiiSOAP uses MySQL. - -This SQL File does not guarantee functionality as WiiSOAP is still in early development statements. -It is suggested that you should hold off from using WiiSOAP unless you are confident that you know what you are doing. -Follow and practice proper security practices before handling user data. - -*/ - --- Generation Time: Jan 23, 2019 at 12:40 PM --- Server version: 10.5.5-MariaDB --- PHP Version: 7.3.0 - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8mb4 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - -- --- Table structure for table `shop_titles` +-- PostgreSQL database dump -- -DROP TABLE IF EXISTS `shop_titles`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shop_titles` ( - `title_id` varchar(16) NOT NULL, - `version` int(11) NOT NULL, - `description` mediumtext DEFAULT 'yada yada', - PRIMARY KEY (`title_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; +-- Dumped from database version 13.2 +-- Dumped by pg_dump version 13.2 + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +SET default_tablespace = ''; + +SET default_table_access_method = heap; -- --- Table structure for table `owned_titles` +-- Name: owned_titles; Type: TABLE; Schema: public; Owner: wiisoap -- -DROP TABLE IF EXISTS `owned_titles`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `owned_titles` ( - `account_id` varchar(9) NOT NULL, - `ticket_id` int(16) NOT NULL, - `title_id` varchar(16) NOT NULL, - `revocation_date` int(11) NOT NULL DEFAULT 0, - KEY `match_shop_title_metadata` (`title_id`), - KEY `order_account_ids` (`account_id`), - CONSTRAINT `match_shop_title_metadata` FOREIGN KEY (`title_id`) REFERENCES `shop_titles` (`title_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; +CREATE TABLE public.owned_titles ( + account_id integer NOT NULL, + ticket_id character varying(16) NOT NULL, + title_id character varying(16) NOT NULL, + revocation_date timestamp without time zone +); + + +ALTER TABLE public.owned_titles OWNER TO wiisoap; -- --- Table structure for table `userbase` +-- Name: shop_titles; Type: TABLE; Schema: public; Owner: wiisoap -- -DROP TABLE IF EXISTS `userbase`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `userbase` ( - `DeviceId` varchar(10) NOT NULL, - `DeviceTokenUnhashed` varchar(21) NOT NULL COMMENT 'Sadly, sometimes we must return the device token in plaintext.', - `DeviceToken` varchar(32) NOT NULL COMMENT 'The MD5 of the device token is sent for most requests. We store it to avoid wasting compute time.', - `AccountId` varchar(9) NOT NULL, - `Region` varchar(3) NOT NULL, - `Country` varchar(2) NOT NULL, - `Language` varchar(2) NOT NULL, - `SerialNo` varchar(11) NOT NULL, - `DeviceCode` varchar(16) NOT NULL, - PRIMARY KEY (`AccountId`), - UNIQUE KEY `AccountId` (`AccountId`), - UNIQUE KEY `userbase_DeviceId_uindex` (`DeviceId`), - UNIQUE KEY `userbase_DeviceToken_uindex` (`DeviceToken`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; +CREATE TABLE public.shop_titles ( + title_id character varying(16) NOT NULL, + version integer, + description text +); -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +ALTER TABLE public.shop_titles OWNER TO wiisoap; + +-- +-- Name: COLUMN shop_titles.description; Type: COMMENT; Schema: public; Owner: wiisoap +-- + +COMMENT ON COLUMN public.shop_titles.description IS 'Description of the title.'; + + +-- +-- Name: userbase; Type: TABLE; Schema: public; Owner: wiisoap +-- + +CREATE TABLE public.userbase ( + device_id character varying(10) NOT NULL, + device_token character varying(21) NOT NULL, + device_token_hashed character varying(32) NOT NULL, + account_id integer NOT NULL, + region character varying(3), + country character varying(2), + language character varying(2), + serial_number character varying(11), + device_code bigint +); + + +ALTER TABLE public.userbase OWNER TO wiisoap; + +-- +-- Name: COLUMN userbase.device_code; Type: COMMENT; Schema: public; Owner: wiisoap +-- + +COMMENT ON COLUMN public.userbase.device_code IS 'Also known as the console''s friend code.'; + + +-- +-- Data for Name: owned_titles; Type: TABLE DATA; Schema: public; Owner: wiisoap +-- + +COPY public.owned_titles (account_id, ticket_id, title_id, revocation_date) FROM stdin; +\. + + +-- +-- Data for Name: shop_titles; Type: TABLE DATA; Schema: public; Owner: wiisoap +-- + +COPY public.shop_titles (title_id, version, description) FROM stdin; +\. + + +-- +-- Data for Name: userbase; Type: TABLE DATA; Schema: public; Owner: wiisoap +-- + +COPY public.userbase (device_id, device_token, device_token_hashed, account_id, region, country, language, serial_number, device_code) FROM stdin; +\. + + +-- +-- Name: owned_titles owned_titles_pk; Type: CONSTRAINT; Schema: public; Owner: wiisoap +-- + +ALTER TABLE ONLY public.owned_titles + ADD CONSTRAINT owned_titles_pk PRIMARY KEY (account_id); + + +-- +-- Name: shop_titles shop_titles_pk; Type: CONSTRAINT; Schema: public; Owner: wiisoap +-- + +ALTER TABLE ONLY public.shop_titles + ADD CONSTRAINT shop_titles_pk PRIMARY KEY (title_id); + + +-- +-- Name: userbase userbase_pk; Type: CONSTRAINT; Schema: public; Owner: wiisoap +-- + +ALTER TABLE ONLY public.userbase + ADD CONSTRAINT userbase_pk PRIMARY KEY (account_id); + + +-- +-- Name: owned_titles_account_id_uindex; Type: INDEX; Schema: public; Owner: wiisoap +-- + +CREATE UNIQUE INDEX owned_titles_account_id_uindex ON public.owned_titles USING btree (account_id); + + +-- +-- Name: shop_titles_title_id_uindex; Type: INDEX; Schema: public; Owner: wiisoap +-- + +CREATE UNIQUE INDEX shop_titles_title_id_uindex ON public.shop_titles USING btree (title_id); + + +-- +-- Name: userbase_account_id_uindex; Type: INDEX; Schema: public; Owner: wiisoap +-- + +CREATE UNIQUE INDEX userbase_account_id_uindex ON public.userbase USING btree (account_id); + + +-- +-- Name: userbase_device_code_uindex; Type: INDEX; Schema: public; Owner: wiisoap +-- + +CREATE UNIQUE INDEX userbase_device_code_uindex ON public.userbase USING btree (device_code); + + +-- +-- Name: userbase_device_token_uindex; Type: INDEX; Schema: public; Owner: wiisoap +-- + +CREATE UNIQUE INDEX userbase_device_token_uindex ON public.userbase USING btree (device_token); + + +-- +-- Name: owned_titles match_shop_title_metadata; Type: FK CONSTRAINT; Schema: public; Owner: wiisoap +-- + +ALTER TABLE ONLY public.owned_titles + ADD CONSTRAINT match_shop_title_metadata FOREIGN KEY (title_id) REFERENCES public.shop_titles(title_id); + + +-- +-- Name: owned_titles order_account_ids; Type: FK CONSTRAINT; Schema: public; Owner: wiisoap +-- + +ALTER TABLE ONLY public.owned_titles + ADD CONSTRAINT order_account_ids FOREIGN KEY (account_id) REFERENCES public.userbase(account_id); + + +-- +-- PostgreSQL database dump complete +-- \ No newline at end of file