mirror of
https://github.com/house-of-vanity/desubot.git
synced 2025-08-21 15:27:14 +00:00
Improve DB work.
This commit is contained in:
@@ -1,8 +1,3 @@
|
|||||||
--
|
|
||||||
-- File generated with SQLiteStudio v3.2.1 on Sun Dec 6 13:46:57 2020
|
|
||||||
--
|
|
||||||
-- Text encoding used: System
|
|
||||||
--
|
|
||||||
PRAGMA foreign_keys = off;
|
PRAGMA foreign_keys = off;
|
||||||
BEGIN TRANSACTION;
|
BEGIN TRANSACTION;
|
||||||
|
|
||||||
@@ -37,6 +32,14 @@ CREATE TABLE IF NOT EXISTS file (
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Table: messages
|
||||||
|
CREATE TABLE IF NOT EXISTS messages (
|
||||||
|
id INTEGER NOT NULL
|
||||||
|
PRIMARY KEY AUTOINCREMENT,
|
||||||
|
text TEXT UNIQUE
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
-- Table: relations
|
-- Table: relations
|
||||||
CREATE TABLE IF NOT EXISTS relations (
|
CREATE TABLE IF NOT EXISTS relations (
|
||||||
id INTEGER NOT NULL
|
id INTEGER NOT NULL
|
||||||
@@ -75,6 +78,12 @@ CREATE TABLE IF NOT EXISTS reset (
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Table: stop_words
|
||||||
|
CREATE TABLE IF NOT EXISTS stop_words (
|
||||||
|
word TEXT
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
-- Table: user
|
-- Table: user
|
||||||
CREATE TABLE IF NOT EXISTS user (
|
CREATE TABLE IF NOT EXISTS user (
|
||||||
id INTEGER NOT NULL
|
id INTEGER NOT NULL
|
||||||
@@ -97,11 +106,37 @@ CREATE TABLE IF NOT EXISTS word (
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
-- Table: xxx_message
|
-- Index: conf_ids
|
||||||
CREATE TABLE IF NOT EXISTS xxx_message (
|
CREATE INDEX IF NOT EXISTS conf_ids ON conf (
|
||||||
id INTEGER NOT NULL
|
id
|
||||||
PRIMARY KEY AUTOINCREMENT,
|
);
|
||||||
text TEXT UNIQUE
|
|
||||||
|
|
||||||
|
-- Index: file_ids
|
||||||
|
CREATE INDEX IF NOT EXISTS file_ids ON file (
|
||||||
|
file_id
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Index: relations_ids
|
||||||
|
CREATE INDEX IF NOT EXISTS relations_ids ON relations (
|
||||||
|
conf_id,
|
||||||
|
word_id,
|
||||||
|
user_id,
|
||||||
|
msg_id
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Index: user_ids
|
||||||
|
CREATE INDEX IF NOT EXISTS user_ids ON user (
|
||||||
|
id,
|
||||||
|
username
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Index: word_id
|
||||||
|
CREATE INDEX IF NOT EXISTS word_id ON word (
|
||||||
|
id
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
148
src/db.rs
148
src/db.rs
@@ -25,8 +25,7 @@ pub(crate) fn open() -> Result<Connection> {
|
|||||||
|
|
||||||
pub(crate) fn update_scheme() -> Result<()> {
|
pub(crate) fn update_scheme() -> Result<()> {
|
||||||
let conn = open()?;
|
let conn = open()?;
|
||||||
//let x = conn.execute(SCHEME, params![])?;
|
for table in include_str!("../assets/scheme.sql").split(';').into_iter() {
|
||||||
for table in SCHEME.split(';').into_iter() {
|
|
||||||
let t = table.trim();
|
let t = table.trim();
|
||||||
if t != "" {
|
if t != "" {
|
||||||
conn.execute(t, params![])?;
|
conn.execute(t, params![])?;
|
||||||
@@ -425,149 +424,4 @@ pub(crate) async fn get_top(
|
|||||||
Ok(top)
|
Ok(top)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SCHEME
|
|
||||||
static SCHEME: &str = "
|
|
||||||
PRAGMA foreign_keys = off;
|
|
||||||
BEGIN TRANSACTION;
|
|
||||||
|
|
||||||
-- Table: alert
|
|
||||||
CREATE TABLE IF NOT EXISTS alert (
|
|
||||||
conf_id TEXT NOT NULL,
|
|
||||||
user_id TEXT NOT NULL,
|
|
||||||
created TEXT NOT NULL,
|
|
||||||
time TEXT NOT NULL,
|
|
||||||
message TEXT
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Table: conf
|
|
||||||
CREATE TABLE IF NOT EXISTS conf (
|
|
||||||
id NUMERIC NOT NULL
|
|
||||||
UNIQUE,
|
|
||||||
title TEXT,
|
|
||||||
date INTEGER NOT NULL,
|
|
||||||
PRIMARY KEY (
|
|
||||||
id
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Table: file
|
|
||||||
CREATE TABLE IF NOT EXISTS file (
|
|
||||||
path TEXT NOT NULL,
|
|
||||||
user_id TEXT NOT NULL,
|
|
||||||
conf_id TEXT NOT NULL,
|
|
||||||
file_id STRING PRIMARY KEY
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Table: messages
|
|
||||||
CREATE TABLE IF NOT EXISTS messages (
|
|
||||||
id INTEGER NOT NULL
|
|
||||||
PRIMARY KEY AUTOINCREMENT,
|
|
||||||
text TEXT UNIQUE
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Table: relations
|
|
||||||
CREATE TABLE IF NOT EXISTS relations (
|
|
||||||
id INTEGER NOT NULL
|
|
||||||
PRIMARY KEY AUTOINCREMENT,
|
|
||||||
word_id INTEGER NOT NULL,
|
|
||||||
user_id INTEGER NOT NULL,
|
|
||||||
conf_id INTEGER NOT NULL,
|
|
||||||
date INTEGER NOT NULL,
|
|
||||||
msg_id INTEGER,
|
|
||||||
FOREIGN KEY (
|
|
||||||
word_id
|
|
||||||
)
|
|
||||||
REFERENCES word (id) ON DELETE CASCADE,
|
|
||||||
FOREIGN KEY (
|
|
||||||
user_id
|
|
||||||
)
|
|
||||||
REFERENCES user (id),
|
|
||||||
FOREIGN KEY (
|
|
||||||
conf_id
|
|
||||||
)
|
|
||||||
REFERENCES conf (id)
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Table: reset
|
|
||||||
CREATE TABLE IF NOT EXISTS reset (
|
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
||||||
user_id INTEGER,
|
|
||||||
conf_id INTEGER,
|
|
||||||
date INTEGER,
|
|
||||||
relation_id INTEGER,
|
|
||||||
FOREIGN KEY (
|
|
||||||
user_id
|
|
||||||
)
|
|
||||||
REFERENCES user (id)
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Table: stop_words
|
|
||||||
CREATE TABLE IF NOT EXISTS stop_words (
|
|
||||||
word TEXT
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Table: user
|
|
||||||
CREATE TABLE IF NOT EXISTS user (
|
|
||||||
id INTEGER NOT NULL
|
|
||||||
UNIQUE,
|
|
||||||
username TEXT,
|
|
||||||
first_name INTEGER NOT NULL,
|
|
||||||
last_name INTEGER,
|
|
||||||
date INTEGER NOT NULL,
|
|
||||||
PRIMARY KEY (
|
|
||||||
id
|
|
||||||
)
|
|
||||||
ON CONFLICT REPLACE
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Table: word
|
|
||||||
CREATE TABLE IF NOT EXISTS word (
|
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
||||||
word TEXT UNIQUE
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Index: conf_ids
|
|
||||||
CREATE INDEX IF NOT EXISTS conf_ids ON conf (
|
|
||||||
id
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Index: file_ids
|
|
||||||
CREATE INDEX IF NOT EXISTS file_ids ON file (
|
|
||||||
file_id
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Index: relations_ids
|
|
||||||
CREATE INDEX IF NOT EXISTS relations_ids ON relations (
|
|
||||||
conf_id,
|
|
||||||
word_id,
|
|
||||||
user_id,
|
|
||||||
msg_id
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Index: user_ids
|
|
||||||
CREATE INDEX IF NOT EXISTS user_ids ON user (
|
|
||||||
id,
|
|
||||||
username
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Index: word_id
|
|
||||||
CREATE INDEX IF NOT EXISTS word_id ON word (
|
|
||||||
id
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
COMMIT TRANSACTION;
|
|
||||||
PRAGMA foreign_keys = on;";
|
|
||||||
|
Reference in New Issue
Block a user