mirror of
https://github.com/Eggbertx/gochan.git
synced 2025-08-02 02:36:24 -07:00
Generate config.RandomSeed if one isn't provided in gochan.json Don't automatically fail if a board's path already exists, unless it isn't a directory Clean up SQL query strings with DBPREFIX replacer Separate the gochan.service file into separate files for each SQL DB type Enable the gochan.service in Vagrant and fix issue with it failing on restart fixes #19
180 lines
6.1 KiB
SQL
180 lines
6.1 KiB
SQL
-- Gochan SQLite startup/update script
|
|
-- DO NOT DELETE
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXannouncements (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
subject VARCHAR(45) NOT NULL DEFAULT '',
|
|
message TEXT NOT NULL CHECK (message <> ''),
|
|
poster VARCHAR(45) NOT NULL CHECK (poster <> ''),
|
|
timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXappeals (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
ban INT NOT NULL CHECK (ban <> 0),
|
|
message TEXT NOT NULL CHECK (message <> ''),
|
|
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
denied BOOLEAN DEFAULT FALSE,
|
|
staff_response TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXbanlist (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
allow_read BOOLEAN DEFAULT TRUE,
|
|
ip VARCHAR(45) NOT NULL DEFAULT '',
|
|
name VARCHAR(255) NOT NULL DEFAULT '',
|
|
name_is_regex BOOLEAN DEFAULT FALSE,
|
|
filename VARCHAR(255) NOT NULL DEFAULT '',
|
|
file_checksum VARCHAR(255) NOT NULL DEFAULT '',
|
|
boards VARCHAR(255) NOT NULL DEFAULT '*',
|
|
staff VARCHAR(50) NOT NULL DEFAULT '',
|
|
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
expires TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
permaban BOOLEAN NOT NULL DEFAULT TRUE,
|
|
reason VARCHAR(255) NOT NULL DEFAULT '',
|
|
type SMALLINT NOT NULL DEFAULT 3,
|
|
staff_note VARCHAR(255) NOT NULL DEFAULT '',
|
|
appeal_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
can_appeal BOOLEAN NOT NULL DEFAULT true
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXboards (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
list_order SMALLINT NOT NULL DEFAULT 0,
|
|
dir VARCHAR(45) UNIQUE NOT NULL CHECK (dir <> ''),
|
|
type SMALLINT NOT NULL DEFAULT 0,
|
|
upload_type SMALLINT NOT NULL DEFAULT 0,
|
|
title VARCHAR(45) NOT NULL CHECK (title <> ''),
|
|
subtitle VARCHAR(64) NOT NULL DEFAULT '',
|
|
description VARCHAR(64) NOT NULL DEFAULT '',
|
|
section INT NOT NULL DEFAULT 1,
|
|
max_file_size INT NOT NULL DEFAULT 4718592,
|
|
max_pages SMALLINT NOT NULL DEFAULT 11,
|
|
default_style VARCHAR(45) NOT NULL DEFAULT '',
|
|
locked BOOLEAN NOT NULL DEFAULT FALSE,
|
|
created_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
anonymous VARCHAR(45) NOT NULL DEFAULT 'Anonymous',
|
|
forced_anon BOOLEAN NOT NULL DEFAULT FALSE,
|
|
max_age INT NOT NULL DEFAULT 0,
|
|
autosage_after INT NOT NULL DEFAULT 200,
|
|
no_images_after INT NOT NULL DEFAULT 0,
|
|
max_message_length INT NOT NULL DEFAULT 8192,
|
|
embeds_allowed BOOLEAN NOT NULL DEFAULT TRUE,
|
|
redirect_to_thread BOOLEAN NOT NULL DEFAULT TRUE,
|
|
require_file BOOLEAN NOT NULL DEFAULT FALSE,
|
|
enable_catalog BOOLEAN NOT NULL DEFAULT TRUE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXembeds (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
filetype VARCHAR(3) NOT NULL,
|
|
name VARCHAR(45) NOT NULL,
|
|
video_url VARCHAR(255) NOT NULL,
|
|
width SMALLINT NOT NULL,
|
|
height SMALLINT NOT NULL,
|
|
embed_code TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXinfo (
|
|
name VARCHAR(45) PRIMARY KEY NOT NULL,
|
|
value TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXlinks (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
title VARCHAR(45) NOT NULL,
|
|
url VARCHAR(255) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXposts (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
boardid INT NOT NULL,
|
|
parentid INT NOT NULL DEFAULT '0',
|
|
name VARCHAR(50) NOT NULL,
|
|
tripcode VARCHAR(10) NOT NULL,
|
|
email VARCHAR(50) NOT NULL,
|
|
subject VARCHAR(100) NOT NULL,
|
|
message TEXT NOT NULL,
|
|
message_raw TEXT NOT NULL,
|
|
password VARCHAR(45) NOT NULL,
|
|
filename VARCHAR(45) NOT NULL DEFAULT '',
|
|
filename_original VARCHAR(255) NOT NULL DEFAULT '',
|
|
file_checksum VARCHAR(45) NOT NULL DEFAULT '',
|
|
filesize INT NOT NULL DEFAULT 0,
|
|
image_w SMALLINT NOT NULL DEFAULT 0,
|
|
image_h SMALLINT NOT NULL DEFAULT 0,
|
|
thumb_w SMALLINT NOT NULL DEFAULT 0,
|
|
thumb_h SMALLINT NOT NULL DEFAULT 0,
|
|
ip VARCHAR(45) NOT NULL DEFAULT '',
|
|
tag VARCHAR(5) NOT NULL DEFAULT '',
|
|
timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
autosage BOOLEAN NOT NULL DEFAULT FALSE,
|
|
deleted_timestamp TIMESTAMP,
|
|
bumped TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
stickied BOOLEAN NOT NULL DEFAULT FALSE,
|
|
locked BOOLEAN NOT NULL DEFAULT FALSE,
|
|
reviewed BOOLEAN NOT NULL DEFAULT FALSE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXreports (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
board VARCHAR(45) NOT NULL,
|
|
postid INT NOT NULL,
|
|
timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
ip VARCHAR(45) NOT NULL,
|
|
reason VARCHAR(255) NOT NULL,
|
|
cleared BOOLEAN NOT NULL DEFAULT FALSE,
|
|
istemp BOOLEAN NOT NULL DEFAULT FALSE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXsections (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
list_order SMALLINT NOT NULL DEFAULT 0,
|
|
hidden SMALLINT NOT NULL,
|
|
name VARCHAR(45) NOT NULL,
|
|
abbreviation VARCHAR(10) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXsessions (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
name CHAR(16) NOT NULL,
|
|
sessiondata VARCHAR(45) NOT NULL,
|
|
expires TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXstaff (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
username VARCHAR(45) UNIQUE NOT NULL,
|
|
password_checksum VARCHAR(120) NOT NULL,
|
|
rank SMALLINT NOT NULL,
|
|
boards VARCHAR(128) NOT NULL DEFAULT '*',
|
|
added_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
last_active TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Because SQLite doesn't have DROP COLUMN :(
|
|
BEGIN TRANSACTION;
|
|
CREATE TABLE IF NOT EXISTS _DBPREFIXstaff (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
username VARCHAR(45) UNIQUE NOT NULL,
|
|
password_checksum VARCHAR(120) NOT NULL,
|
|
rank SMALLINT NOT NULL,
|
|
boards VARCHAR(128) NOT NULL DEFAULT '*',
|
|
added_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
last_active TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
INSERT INTO _DBPREFIXstaff
|
|
(id,username,password_checksum,rank,boards,added_on,last_active)
|
|
SELECT id,username,password_checksum,rank,boards,added_on,last_active
|
|
FROM DBPREFIXstaff;
|
|
DROP TABLE DBPREFIXstaff;
|
|
ALTER TABLE _DBPREFIXstaff RENAME TO DBPREFIXstaff;
|
|
COMMIT;
|
|
|
|
CREATE TABLE IF NOT EXISTS DBPREFIXwordfilters (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
search VARCHAR(75) NOT NULL CHECK (search <> ''),
|
|
change_to VARCHAR(75) NOT NULL DEFAULT '',
|
|
boards VARCHAR(128) NOT NULL DEFAULT '*',
|
|
regex BOOLEAN NOT NULL DEFAULT FALSE
|
|
);
|