Reworked migrations and added the user and refresh token tables
This commit is contained in:
parent
8ea3f5fef1
commit
81699b6919
@ -1,72 +0,0 @@
|
|||||||
-- +goose Up
|
|
||||||
-- +goose StatementBegin
|
|
||||||
SELECT 'up SQL query';
|
|
||||||
CREATE TABLE Articles (
|
|
||||||
ID uuid PRIMARY KEY,
|
|
||||||
SourceId uuid NOT null,
|
|
||||||
Tags TEXT NOT NULL,
|
|
||||||
Title TEXT NOT NULL,
|
|
||||||
Url TEXT NOT NULL,
|
|
||||||
PubDate timestamp NOT NULL,
|
|
||||||
Video TEXT,
|
|
||||||
VideoHeight int NOT NULL,
|
|
||||||
VideoWidth int NOT NULL,
|
|
||||||
Thumbnail TEXT NOT NULL,
|
|
||||||
Description TEXT NOT NULL,
|
|
||||||
AuthorName TEXT,
|
|
||||||
AuthorImage TEXT
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE Table DiscordQueue (
|
|
||||||
ID uuid PRIMARY KEY,
|
|
||||||
ArticleId uuid NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE Table DiscordWebHooks (
|
|
||||||
ID uuid PRIMARY KEY,
|
|
||||||
Name TEXT NOT NULL, -- Defines webhook purpose
|
|
||||||
Key TEXT,
|
|
||||||
Url TEXT NOT NULL, -- Webhook Url
|
|
||||||
Server TEXT NOT NULL, -- Defines the server its bound it. Used for refrence
|
|
||||||
Channel TEXT NOT NULL, -- Defines the channel its bound to. Used for refrence
|
|
||||||
Enabled BOOLEAN NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE Table Icons (
|
|
||||||
ID uuid PRIMARY Key,
|
|
||||||
FileName TEXT NOT NULL,
|
|
||||||
Site TEXT NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
Create Table Settings (
|
|
||||||
ID uuid PRIMARY Key,
|
|
||||||
Key TEXT NOT NULL, -- How you search for a entry
|
|
||||||
Value TEXT NOT NULL, -- The value for one
|
|
||||||
Options TEXT -- any notes about the entry
|
|
||||||
);
|
|
||||||
|
|
||||||
Create Table Sources (
|
|
||||||
ID uuid PRIMARY Key,
|
|
||||||
Site TEXT NOT NULL, -- Vanity name
|
|
||||||
Name TEXT NOT NULL, -- Defines the name of the source. IE: dadjokes
|
|
||||||
Source TEXT NOT NULL, -- Defines the service that will use this reocrd. IE reddit or youtube
|
|
||||||
Type TEXT NOT NULL, -- Defines what kind of feed this is. feed, user, tag
|
|
||||||
Value TEXT,
|
|
||||||
Enabled BOOLEAN NOT NULL,
|
|
||||||
Url TEXT NOT NULL,
|
|
||||||
Tags TEXT NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- +goose StatementEnd
|
|
||||||
|
|
||||||
-- +goose Down
|
|
||||||
-- +goose StatementBegin
|
|
||||||
Drop Table Articles;
|
|
||||||
Drop Table DiscordQueue;
|
|
||||||
Drop Table DiscordWebHooks;
|
|
||||||
Drop Table Icons;
|
|
||||||
Drop Table Settings;
|
|
||||||
Drop Table Sources;
|
|
||||||
-- +goose StatementEnd
|
|
@ -1,50 +0,0 @@
|
|||||||
-- +goose Up
|
|
||||||
-- +goose StatementBegin
|
|
||||||
SELECT 'up SQL query';
|
|
||||||
|
|
||||||
-- Enable UUID's
|
|
||||||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
|
||||||
|
|
||||||
-- Final Fantasy XIV Entries
|
|
||||||
INSERT INTO sources VALUES
|
|
||||||
(uuid_generate_v4(), 'ffxiv', 'Final Fantasy XIV - NA', 'ffxiv', 'scrape', 'a', TRUE, 'https://na.finalfantasyxiv.com/lodestone/', 'ffxiv, final, fantasy, xiv, na, lodestone');
|
|
||||||
INSERT INTO sources VALUES
|
|
||||||
(uuid_generate_v4(), 'ffxiv', 'Final Fantasy XIV - JP', 'ffxiv', 'scrape', 'a', FALSE, 'https://jp.finalfantasyxiv.com/lodestone/', 'ffxiv, final, fantasy, xiv, jp, lodestone');
|
|
||||||
INSERT INTO sources VALUES
|
|
||||||
(uuid_generate_v4(), 'ffxiv', 'Final Fantasy XIV - EU', 'ffxiv', 'scrape', 'a', FALSE, 'https://eu.finalfantasyxiv.com/lodestone/', 'ffxiv, final, fantasy, xiv, eu, lodestone');
|
|
||||||
INSERT INTO sources VALUES
|
|
||||||
(uuid_generate_v4(), 'ffxiv', 'Final Fantasy XIV - FR', 'ffxiv', 'scrape', 'a', FALSE, 'https://fr.finalfantasyxiv.com/lodestone/', 'ffxiv, final, fantasy, xiv, fr, lodestone');
|
|
||||||
INSERT INTO sources VALUES
|
|
||||||
(uuid_generate_v4(), 'ffxiv', 'Final Fantasy XIV - DE', 'ffxiv', 'scrape', 'a', FALSE, 'https://de.finalfantasyxiv.com/lodestone/', 'ffxiv, final, fantasy, xiv, de, lodestone');
|
|
||||||
|
|
||||||
-- Reddit Entries
|
|
||||||
INSERT INTO sources VALUES
|
|
||||||
(uuid_generate_v4(), 'reddit', 'dadjokes', 'reddit', 'feed', 'a', TRUE, 'https://reddit.com/r/dadjokes', 'reddit, dadjokes');
|
|
||||||
INSERT INTO sources VALUES
|
|
||||||
(uuid_generate_v4(), 'reddit', 'steamdeck', 'reddit', 'feed', 'a', TRUE, 'https://reddit.com/r/steamdeck', 'reddit, steam deck, steam, deck');
|
|
||||||
|
|
||||||
-- Youtube Entries
|
|
||||||
INSERT INTO sources VALUES
|
|
||||||
(uuid_generate_v4(), 'youtube', 'Game Grumps', 'youtube', 'feed', 'a', TRUE, 'https://www.youtube.com/user/GameGrumps', 'youtube, game grumps, game, grumps');
|
|
||||||
|
|
||||||
-- RSS Entries
|
|
||||||
INSERT INTO sources VALUES
|
|
||||||
(uuid_generate_v4(), 'steampowered', 'steam deck', 'rss', 'feed', 'a', TRUE, 'https://store.steampowered.com/feeds/news/app/1675200/?cc=US&l=english&snr=1_2108_9__2107', 'rss, steampowered, steam, deck, steam deck');
|
|
||||||
|
|
||||||
-- Twitch Entries
|
|
||||||
INSERT INTO sources VALUES
|
|
||||||
(uuid_generate_v4(), 'twitch', 'Nintendo', 'twitch', 'api', 'a', TRUE, 'https://twitch.tv/nintendo', 'twitch, nintendo');
|
|
||||||
|
|
||||||
-- +goose StatementEnd
|
|
||||||
|
|
||||||
-- +goose Down
|
|
||||||
-- +goose StatementBegin
|
|
||||||
--SELECT 'down SQL query';
|
|
||||||
|
|
||||||
DELETE FROM sources where source = 'reddit' and name = 'dadjokes';
|
|
||||||
DELETE FROM sources where source = 'reddit' and name = 'steamdeck';
|
|
||||||
DELETE FROM sources where source = 'ffxiv';
|
|
||||||
DELETE FROM sources WHERE source = 'twitch' and name = 'Nintendo';
|
|
||||||
DELETE FROM sources WHERE source = 'youtube' and name = 'Game Grumps';
|
|
||||||
DELETE FROM SOURCES WHERE source = 'rss' and name = 'steam deck';
|
|
||||||
-- +goose StatementEnd
|
|
@ -1,21 +0,0 @@
|
|||||||
-- +goose Up
|
|
||||||
-- +goose StatementBegin
|
|
||||||
SELECT 'up SQL query';
|
|
||||||
Create TABLE Subscriptions (
|
|
||||||
ID uuid Primary Key,
|
|
||||||
DiscordWebHookID uuid Not Null,
|
|
||||||
SourceID uuid Not Null
|
|
||||||
);
|
|
||||||
|
|
||||||
ALTER TABLE discordwebhooks drop COLUMN Name;
|
|
||||||
ALTER TABLE discordwebhooks drop COLUMN Key;
|
|
||||||
|
|
||||||
-- +goose StatementEnd
|
|
||||||
|
|
||||||
-- +goose Down
|
|
||||||
-- +goose StatementBegin
|
|
||||||
SELECT 'down SQL query';
|
|
||||||
Drop Table Subscriptions;
|
|
||||||
ALTER TABLE discordwebhooks Add COLUMN Name TEXT;
|
|
||||||
--ALTER TABLE discordwebhooks Add COLUMN Key TEXT;
|
|
||||||
-- +goose StatementEnd
|
|
@ -1,11 +0,0 @@
|
|||||||
-- +goose Up
|
|
||||||
-- +goose StatementBegin
|
|
||||||
SELECT 'up SQL query';
|
|
||||||
ALTER TABLE sources Add COLUMN Deleted BOOLEAN;
|
|
||||||
-- +goose StatementEnd
|
|
||||||
|
|
||||||
-- +goose Down
|
|
||||||
-- +goose StatementBegin
|
|
||||||
SELECT 'down SQL query';
|
|
||||||
ALTER TABLE sources Drop Deleted Deleted BOOLEAN;
|
|
||||||
-- +goose StatementEnd
|
|
121
internal/database/migrations/20240425083756_init.sql
Normal file
121
internal/database/migrations/20240425083756_init.sql
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
-- +goose Up
|
||||||
|
-- +goose StatementBegin
|
||||||
|
SELECT 'up SQL query';
|
||||||
|
CREATE TABLE Articles (
|
||||||
|
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
CreatedAt DATETIME NOT NULL,
|
||||||
|
LastUpdated DATETIME NOT NULL,
|
||||||
|
DeletedAt DATETIME,
|
||||||
|
SourceId NUMBER NOT NULL,
|
||||||
|
Tags TEXT NOT NULL,
|
||||||
|
Title TEXT NOT NULL,
|
||||||
|
Url TEXT NOT NULL,
|
||||||
|
PubDate DATETIME NOT NULL,
|
||||||
|
Video TEXT,
|
||||||
|
VideoHeight int NOT NULL,
|
||||||
|
VideoWidth int NOT NULL,
|
||||||
|
Thumbnail TEXT NOT NULL,
|
||||||
|
Description TEXT NOT NULL,
|
||||||
|
AuthorName TEXT,
|
||||||
|
AuthorImageUrl TEXT
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE Table DiscordQueue (
|
||||||
|
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
CreatedAt DATETIME NOT NULL,
|
||||||
|
UpdatedAt DATETIME NOT NULL,
|
||||||
|
DeletedAt DATETIME,
|
||||||
|
ArticleId NUMBER NOT NULL,
|
||||||
|
SourceId NUMBER NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE Table DiscordWebHooks (
|
||||||
|
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
CreatedAt DATETIME NOT NULL,
|
||||||
|
UpdatedAt DATETIME NOT NULL,
|
||||||
|
DeletedAt DATETIME,
|
||||||
|
--Name TEXT NOT NULL, -- Defines webhook purpose
|
||||||
|
--Key TEXT,
|
||||||
|
Url TEXT NOT NULL, -- Webhook Url
|
||||||
|
Server TEXT NOT NULL, -- Defines the server its bound it. Used for refrence
|
||||||
|
Channel TEXT NOT NULL, -- Defines the channel its bound to. Used for refrence
|
||||||
|
Enabled BOOLEAN NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE Table Icons (
|
||||||
|
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
CreatedAt DATETIME NOT NULL,
|
||||||
|
UpdatedAt DATETIME NOT NULL,
|
||||||
|
DeletedAt DATETIME,
|
||||||
|
FileName TEXT NOT NULL,
|
||||||
|
Site TEXT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
Create Table Settings (
|
||||||
|
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
CreatedAt DATETIME NOT NULL,
|
||||||
|
UpdatedAt DATETIME NOT NULL,
|
||||||
|
DeletedAt DATETIME,
|
||||||
|
Key TEXT NOT NULL, -- How you search for a entry
|
||||||
|
Value TEXT NOT NULL, -- The value for one
|
||||||
|
Options TEXT -- any notes about the entry
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE Table Sources (
|
||||||
|
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
CreatedAt DATETIME NOT NULL,
|
||||||
|
UpdatedAt DATETIME NOT NULL,
|
||||||
|
DeletedAt DATETIME,
|
||||||
|
Site TEXT NOT NULL, -- Vanity name
|
||||||
|
Name TEXT NOT NULL, -- Defines the name of the source. IE: dadjokes
|
||||||
|
Source TEXT NOT NULL, -- Defines the service that will use this reocrd. IE reddit or youtube
|
||||||
|
Type TEXT NOT NULL, -- Defines what kind of feed this is. feed, user, tag
|
||||||
|
Value TEXT,
|
||||||
|
Enabled BOOLEAN NOT NULL,
|
||||||
|
Url TEXT NOT NULL,
|
||||||
|
Tags TEXT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Subscriptions (
|
||||||
|
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
CreatedAt DATETIME NOT NULL,
|
||||||
|
UpdatedAt DATETIME NOT NULL,
|
||||||
|
DeletedAt DATETIME,
|
||||||
|
DiscordWebHookId NUMBER NOT NULL,
|
||||||
|
SourceId NUMBER NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Users (
|
||||||
|
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
CreatedAt DATETIME NOT NULL,
|
||||||
|
UpdatedAt DATETIME NOT NULL,
|
||||||
|
DeletedAt DATETIME,
|
||||||
|
Name TEXT NOT NULL,
|
||||||
|
Hash TEXT NOT NULL,
|
||||||
|
Scopes TEXT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE RefreshTokens (
|
||||||
|
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
CreatedAt DATETIME NOT NULL,
|
||||||
|
UpdatedAt DATETIME NOT NULL,
|
||||||
|
DeletedAt DATETIME,
|
||||||
|
Username TEXT NOT NULL,
|
||||||
|
Token TEXT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- +goose StatementEnd
|
||||||
|
|
||||||
|
-- +goose Down
|
||||||
|
-- +goose StatementBegin
|
||||||
|
Drop Table Articles;
|
||||||
|
Drop Table DiscordQueue;
|
||||||
|
Drop Table DiscordWebHooks;
|
||||||
|
Drop Table Icons;
|
||||||
|
Drop Table Settings;
|
||||||
|
Drop Table Sources;
|
||||||
|
DROP TABLE Subscriptions;
|
||||||
|
DROP TABLE Users;
|
||||||
|
DROP TABLE RefreshTokens;
|
||||||
|
-- +goose StatementEnd
|
50
internal/database/migrations/20240425092459_seed.sql
Normal file
50
internal/database/migrations/20240425092459_seed.sql
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
-- +goose Up
|
||||||
|
-- +goose StatementBegin
|
||||||
|
SELECT 'up SQL query';
|
||||||
|
|
||||||
|
-- Enable UUID's
|
||||||
|
--CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
||||||
|
|
||||||
|
-- Final Fantasy XIV Entries
|
||||||
|
INSERT INTO sources (CreatedAt, UpdatedAt, Site, Name, Source, Type, Value, Enabled, Url, Tags) VALUES
|
||||||
|
("2024-04-25 18:37:43.852367", "2024-04-25 18:37:43.852367", 'ffxiv', 'Final Fantasy XIV - NA', 'ffxiv', 'scrape', 'a', TRUE, 'https://na.finalfantasyxiv.com/lodestone/', 'ffxiv, final, fantasy, xiv, na, lodestone');
|
||||||
|
INSERT INTO sources (CreatedAt, UpdatedAt, Site, Name, Source, Type, Value, Enabled, Url, Tags) VALUES
|
||||||
|
("2024-04-25 18:37:43.852367", "2024-04-25 18:37:43.852367", 'ffxiv', 'Final Fantasy XIV - JP', 'ffxiv', 'scrape', 'a', FALSE, 'https://jp.finalfantasyxiv.com/lodestone/', 'ffxiv, final, fantasy, xiv, jp, lodestone');
|
||||||
|
INSERT INTO sources (CreatedAt, UpdatedAt, Site, Name, Source, Type, Value, Enabled, Url, Tags) VALUES
|
||||||
|
("2024-04-25 18:37:43.852367", "2024-04-25 18:37:43.852367", 'ffxiv', 'Final Fantasy XIV - EU', 'ffxiv', 'scrape', 'a', FALSE, 'https://eu.finalfantasyxiv.com/lodestone/', 'ffxiv, final, fantasy, xiv, eu, lodestone');
|
||||||
|
INSERT INTO sources (CreatedAt, UpdatedAt, Site, Name, Source, Type, Value, Enabled, Url, Tags) VALUES
|
||||||
|
("2024-04-25 18:37:43.852367", "2024-04-25 18:37:43.852367", 'ffxiv', 'Final Fantasy XIV - FR', 'ffxiv', 'scrape', 'a', FALSE, 'https://fr.finalfantasyxiv.com/lodestone/', 'ffxiv, final, fantasy, xiv, fr, lodestone');
|
||||||
|
INSERT INTO sources (CreatedAt, UpdatedAt, Site, Name, Source, Type, Value, Enabled, Url, Tags) VALUES
|
||||||
|
("2024-04-25 18:37:43.852367", "2024-04-25 18:37:43.852367", 'ffxiv', 'Final Fantasy XIV - DE', 'ffxiv', 'scrape', 'a', FALSE, 'https://de.finalfantasyxiv.com/lodestone/', 'ffxiv, final, fantasy, xiv, de, lodestone');
|
||||||
|
|
||||||
|
-- Reddit Entries
|
||||||
|
INSERT INTO sources (CreatedAt, UpdatedAt, Site, Name, Source, Type, Value, Enabled, Url, Tags) VALUES
|
||||||
|
("2024-04-25 18:37:43.852367", "2024-04-25 18:37:43.852367", 'reddit', 'dadjokes', 'reddit', 'feed', 'a', TRUE, 'https://reddit.com/r/dadjokes', 'reddit, dadjokes');
|
||||||
|
INSERT INTO sources (CreatedAt, UpdatedAt, Site, Name, Source, Type, Value, Enabled, Url, Tags) VALUES
|
||||||
|
("2024-04-25 18:37:43.852367", "2024-04-25 18:37:43.852367", 'reddit', 'steamdeck', 'reddit', 'feed', 'a', TRUE, 'https://reddit.com/r/steamdeck', 'reddit, steam deck, steam, deck');
|
||||||
|
|
||||||
|
-- Youtube Entries
|
||||||
|
INSERT INTO sources (CreatedAt, UpdatedAt, Site, Name, Source, Type, Value, Enabled, Url, Tags) VALUES
|
||||||
|
("2024-04-25 18:37:43.852367", "2024-04-25 18:37:43.852367", 'youtube', 'Game Grumps', 'youtube', 'feed', 'a', TRUE, 'https://www.youtube.com/user/GameGrumps', 'youtube, game grumps, game, grumps');
|
||||||
|
|
||||||
|
-- RSS Entries
|
||||||
|
INSERT INTO sources (CreatedAt, UpdatedAt, Site, Name, Source, Type, Value, Enabled, Url, Tags) VALUES
|
||||||
|
("2024-04-25 18:37:43.852367", "2024-04-25 18:37:43.852367", 'steampowered', 'steam deck', 'rss', 'feed', 'a', TRUE, 'https://store.steampowered.com/feeds/news/app/1675200/?cc=US&l=english&snr=1_2108_9__2107', 'rss, steampowered, steam, deck, steam deck');
|
||||||
|
|
||||||
|
-- Twitch Entries
|
||||||
|
INSERT INTO sources (CreatedAt, UpdatedAt, Site, Name, Source, Type, Value, Enabled, Url, Tags) VALUES
|
||||||
|
("2024-04-25 18:37:43.852367", "2024-04-25 18:37:43.852367", 'twitch', 'Nintendo', 'twitch', 'api', 'a', TRUE, 'https://twitch.tv/nintendo', 'twitch, nintendo');
|
||||||
|
|
||||||
|
-- +goose StatementEnd
|
||||||
|
|
||||||
|
-- +goose Down
|
||||||
|
-- +goose StatementBegin
|
||||||
|
--SELECT 'down SQL query';
|
||||||
|
|
||||||
|
DELETE FROM sources where source = 'reddit' and name = 'dadjokes';
|
||||||
|
DELETE FROM sources where source = 'reddit' and name = 'steamdeck';
|
||||||
|
DELETE FROM sources where source = 'ffxiv';
|
||||||
|
DELETE FROM sources WHERE source = 'twitch' and name = 'Nintendo';
|
||||||
|
DELETE FROM sources WHERE source = 'youtube' and name = 'Game Grumps';
|
||||||
|
DELETE FROM SOURCES WHERE source = 'rss' and name = 'steam deck';
|
||||||
|
-- +goose StatementEnd
|
Loading…
Reference in New Issue
Block a user