ponepaste/setup_mysql.sql

214 lines
7 KiB
MySQL
Raw Normal View History

2023-04-07 18:53:55 -07:00
drop database if exists ponepaste;
create database ponepaste;
use ponepaste;
DELIMITER $$
CREATE PROCEDURE ExecuteScript()
BEGIN
DECLARE exit handler for sqlexception
BEGIN
ROLLBACK;
END;
START TRANSACTION;
create table admin
(
id int auto_increment
primary key,
user varchar(250) null,
pass varchar(250) null
);
create table admin_history
(
id int auto_increment
primary key,
last_date varchar(255) null,
ip varchar(255) null
);
create table ads
(
id int auto_increment
primary key,
text_ads longtext null,
ads_1 longtext null,
ads_2 longtext null
);
create table ban_user
(
id int auto_increment
primary key,
ip varchar(16) not null,
last_date varchar(15) not null
);
create table page_view
(
id int auto_increment
primary key,
date varchar(255) null,
tpage varchar(255) null,
tvisit varchar(255) null
);
create table pages
(
id int auto_increment
primary key,
last_date varchar(255) null,
page_name varchar(255) null,
page_title longtext null,
page_content longtext null
);
create table sitemap_options
(
id int auto_increment
primary key,
priority varchar(255) null,
changefreq varchar(255) null
);
create table tags
(
id int auto_increment
primary key,
name varchar(255) not null,
slug varchar(255) not null,
constraint tags_name_uindex
unique (name),
constraint tags_slug_uindex
unique (slug)
);
create table user_reports
(
id int auto_increment
primary key,
m_report longtext not null,
p_report int not null,
rep_reason tinyint(1) not null,
t_report int not null
);
create table users
(
id int auto_increment
primary key,
oauth_uid longtext null,
username varchar(255) null,
email_id varchar(255) null,
platform longtext null,
password varchar(255) null,
verified tinyint(1) default 0 not null,
picture longtext null,
date longtext null,
ip longtext null,
badge tinyint(1) unsigned zerofill default 0 not null,
banned tinyint(1) default 0 not null,
recovery_code_hash varchar(255) not null,
admin tinyint(1) default 0 not null,
admin_password_hash varchar(64) null,
created_at datetime default now() not null,
updated_at datetime not null,
constraint users_username_uindex
unique (username)
);
INSERT INTO users (id, username, created_at, updated_at, recovery_code_hash) VALUES (1, 'anonfilly', NOW(), NOW(), "");
create table admin_logs
(
id int auto_increment
primary key,
user_id int not null,
action int not null,
time timestamp default current_timestamp() not null on update current_timestamp(),
ip varchar(16) not null,
constraint admin_logs_users_id_fk
foreign key (user_id) references users (id)
on update cascade on delete cascade
);
create table pastes
(
id int auto_increment
primary key,
title longtext null,
content longtext null,
visible longtext null,
code longtext null,
expiry longtext null,
password longtext null,
encrypt longtext null,
ip longtext null,
views int null,
s_date longtext null,
tagsys longtext null,
user_id int null,
created_at datetime default current_timestamp() null,
updated_at datetime default current_timestamp() null,
constraint users_id_fkey
foreign key (user_id) references users (id)
);
create table paste_taggings
(
id int auto_increment
primary key,
paste_id int null,
tag_id int null,
constraint paste_taggings_uindex
unique (paste_id, tag_id),
constraint paste_taggings_ibfk_2
foreign key (tag_id) references tags (id),
constraint paste_taggings_ibfk_3
foreign key (paste_id) references pastes (id)
on delete cascade
);
create index tag_id
on paste_taggings (tag_id);
create table user_favourites
(
id int auto_increment
primary key,
paste_id int null,
f_time datetime default current_timestamp() not null,
user_id int not null,
constraint paste_id_fk
foreign key (paste_id) references pastes (id),
constraint user_id_fk
foreign key (user_id) references users (id)
);
create table user_sessions
(
id int auto_increment
primary key,
user_id int not null,
token varchar(255) not null,
expire_at datetime not null,
created_at datetime default current_timestamp() not null,
updated_at datetime default current_timestamp() not null,
constraint user_sessions_token_uindex
unique (token),
constraint user_sessions_users_id_fk
foreign key (user_id) references users (id)
);
-- Commit the transaction if no errors occurred
COMMIT;
END $$
DELIMITER ;
CALL ExecuteScript();
DROP PROCEDURE IF EXISTS ExecuteScript;