Some migration fixes and database optimizations

This commit is contained in:
Gabe Kangas
2021-07-22 23:28:01 -07:00
parent c4c1ecfc7b
commit 484098afda
5 changed files with 41 additions and 27 deletions

View File

@@ -45,7 +45,7 @@ func SetupPersistence(file string) error {
}
}
db, err := sql.Open("sqlite3", fmt.Sprintf("file:%s", file))
db, err := sql.Open("sqlite3", fmt.Sprintf("file:%s?_cache_size=10000", file))
db.SetMaxOpenConns(1)
_db = db

32
core/data/messages.go Normal file
View File

@@ -0,0 +1,32 @@
package data
import (
"database/sql"
log "github.com/sirupsen/logrus"
)
func CreateMessagesTable(db *sql.DB) {
createTableSQL := `CREATE TABLE IF NOT EXISTS messages (
"id" string NOT NULL,
"user_id" INTEGER,
"body" TEXT,
"eventType" TEXT,
"hidden_at" DATETIME,
"timestamp" DATETIME,
PRIMARY KEY (id)
);CREATE INDEX index ON messages (id, user_id, hidden_at, timestamp);
CREATE INDEX id ON messages (id);
CREATE INDEX user_id ON messages (user_id);
CREATE INDEX hidden_at ON messages (hidden_at);
CREATE INDEX timestamp ON messages (timestamp);`
stmt, err := db.Prepare(createTableSQL)
if err != nil {
log.Fatal("error creating chat messages table", err)
}
defer stmt.Close()
if _, err := stmt.Exec(); err != nil {
log.Fatal("error creating chat messages table", err)
}
}

View File

@@ -25,7 +25,7 @@ func migrateToSchema1(db *sql.DB) {
}
// Recreate it
createUsersTable(db)
CreateMessagesTable(db)
// Migrate access tokens to become chat users
type oldAccessToken struct {

View File

@@ -21,9 +21,11 @@ func createUsersTable(db *sql.DB) {
"scopes" TEXT,
"type" TEXT DEFAULT 'STANDARD',
"last_used" DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id, access_token),
UNIQUE(id, access_token)
);CREATE INDEX index ON users (id, access_token)`
PRIMARY KEY (id)
);CREATE INDEX index ON users (id, access_token, disabled_at);
CREATE INDEX id ON users (id);
CREATE INDEX access_token ON users (access_token);
CREATE INDEX disabled_at ON USERS (disabled_at);`
stmt, err := db.Prepare(createTableSQL)
if err != nil {