More gorm tweaks.

This commit is contained in:
Nick Barrett 2021-09-17 10:50:30 -04:00
parent c68e8a68a0
commit 6ae7b44318
No known key found for this signature in database
GPG Key ID: 31F23F2CF354937B

View File

@ -6,7 +6,7 @@ import (
func init() { func init() {
upgrades[0] = upgrade{"Initial schema", func(tx *gorm.DB, ctx context) error { upgrades[0] = upgrade{"Initial schema", func(tx *gorm.DB, ctx context) error {
err := tx.Exec(`CREATE TABLE IF NOT EXISTS portal ( tx.Exec(`CREATE TABLE IF NOT EXISTS portal (
jid VARCHAR(255), jid VARCHAR(255),
receiver VARCHAR(255), receiver VARCHAR(255),
mxid VARCHAR(255) UNIQUE, mxid VARCHAR(255) UNIQUE,
@ -19,11 +19,8 @@ func init() {
PRIMARY KEY (jid, receiver) PRIMARY KEY (jid, receiver)
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE IF NOT EXISTS puppet ( tx.Exec(`CREATE TABLE IF NOT EXISTS puppet (
jid VARCHAR(255) PRIMARY KEY, jid VARCHAR(255) PRIMARY KEY,
avatar VARCHAR(255), avatar VARCHAR(255),
displayname VARCHAR(255), displayname VARCHAR(255),
@ -35,11 +32,8 @@ func init() {
enable_presence BOOLEAN NOT NULL DEFAULT true, enable_presence BOOLEAN NOT NULL DEFAULT true,
enable_receipts BOOLEAN NOT NULL DEFAULT true enable_receipts BOOLEAN NOT NULL DEFAULT true
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE IF NOT EXISTS "user" ( tx.Exec(`CREATE TABLE IF NOT EXISTS "user" (
mxid VARCHAR(255) PRIMARY KEY, mxid VARCHAR(255) PRIMARY KEY,
jid VARCHAR(255) UNIQUE, jid VARCHAR(255) UNIQUE,
@ -52,11 +46,8 @@ func init() {
mac_key bytea, mac_key bytea,
last_connection BIGINT NOT NULL DEFAULT 0 last_connection BIGINT NOT NULL DEFAULT 0
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE IF NOT EXISTS "user_portal" ( tx.Exec(`CREATE TABLE IF NOT EXISTS "user_portal" (
user_jid VARCHAR(255), user_jid VARCHAR(255),
portal_jid VARCHAR(255), portal_jid VARCHAR(255),
portal_receiver VARCHAR(255), portal_receiver VARCHAR(255),
@ -67,11 +58,8 @@ func init() {
FOREIGN KEY (user_jid) REFERENCES "user"(jid) ON DELETE CASCADE, FOREIGN KEY (user_jid) REFERENCES "user"(jid) ON DELETE CASCADE,
FOREIGN KEY (portal_jid, portal_receiver) REFERENCES portal(jid, receiver) ON DELETE CASCADE FOREIGN KEY (portal_jid, portal_receiver) REFERENCES portal(jid, receiver) ON DELETE CASCADE
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE IF NOT EXISTS message ( tx.Exec(`CREATE TABLE IF NOT EXISTS message (
chat_jid VARCHAR(255), chat_jid VARCHAR(255),
chat_receiver VARCHAR(255), chat_receiver VARCHAR(255),
jid VARCHAR(255), jid VARCHAR(255),
@ -83,26 +71,17 @@ func init() {
PRIMARY KEY (chat_jid, chat_receiver, jid), PRIMARY KEY (chat_jid, chat_receiver, jid),
FOREIGN KEY (chat_jid, chat_receiver) REFERENCES portal(jid, receiver) ON DELETE CASCADE FOREIGN KEY (chat_jid, chat_receiver) REFERENCES portal(jid, receiver) ON DELETE CASCADE
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE IF NOT EXISTS mx_registrations ( tx.Exec(`CREATE TABLE IF NOT EXISTS mx_registrations (
user_id VARCHAR(255) PRIMARY KEY user_id VARCHAR(255) PRIMARY KEY
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE IF NOT EXISTS mx_room_state ( tx.Exec(`CREATE TABLE IF NOT EXISTS mx_room_state (
room_id VARCHAR(255) PRIMARY KEY, room_id VARCHAR(255) PRIMARY KEY,
power_levels TEXT power_levels TEXT
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE IF NOT EXISTS mx_user_profile ( tx.Exec(`CREATE TABLE IF NOT EXISTS mx_user_profile (
room_id VARCHAR(255), room_id VARCHAR(255),
user_id VARCHAR(255), user_id VARCHAR(255),
membership VARCHAR(15) NOT NULL, membership VARCHAR(15) NOT NULL,
@ -110,22 +89,16 @@ func init() {
displayname TEXT, displayname TEXT,
avatar_url VARCHAR(255) avatar_url VARCHAR(255)
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE IF NOT EXISTS crypto_olm_session ( tx.Exec(`CREATE TABLE IF NOT EXISTS crypto_olm_session (
session_id CHAR(43) PRIMARY KEY, session_id CHAR(43) PRIMARY KEY,
sender_key CHAR(43) NOT NULL, sender_key CHAR(43) NOT NULL,
session bytea NOT NULL, session bytea NOT NULL,
created_at timestamp NOT NULL, created_at timestamp NOT NULL,
last_used timestamp NOT NULL last_used timestamp NOT NULL
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE crypto_megolm_inbound_session ( tx.Exec(`CREATE TABLE crypto_megolm_inbound_session (
session_id CHAR(43) PRIMARY KEY, session_id CHAR(43) PRIMARY KEY,
sender_key CHAR(43) NOT NULL, sender_key CHAR(43) NOT NULL,
signing_key CHAR(43) NOT NULL, signing_key CHAR(43) NOT NULL,
@ -133,11 +106,8 @@ func init() {
session bytea NOT NULL, session bytea NOT NULL,
forwarding_chains bytea NOT NULL forwarding_chains bytea NOT NULL
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE crypto_device ( tx.Exec(`CREATE TABLE crypto_device (
user_id VARCHAR(255), user_id VARCHAR(255),
device_id VARCHAR(255), device_id VARCHAR(255),
identity_key CHAR(43) NOT NULL, identity_key CHAR(43) NOT NULL,
@ -149,14 +119,11 @@ func init() {
PRIMARY KEY (user_id, device_id) PRIMARY KEY (user_id, device_id)
)`) )`)
err = tx.Exec(`CREATE TABLE crypto_tracked_user ( tx.Exec(`CREATE TABLE crypto_tracked_user (
user_id VARCHAR(255) PRIMARY KEY user_id VARCHAR(255) PRIMARY KEY
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE crypto_message_index ( tx.Exec(`CREATE TABLE crypto_message_index (
sender_key CHAR(43), sender_key CHAR(43),
session_id CHAR(43), session_id CHAR(43),
"index" INTEGER, "index" INTEGER,
@ -165,21 +132,15 @@ func init() {
PRIMARY KEY (sender_key, session_id, "index") PRIMARY KEY (sender_key, session_id, "index")
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE crypto_account ( tx.Exec(`CREATE TABLE crypto_account (
device_id VARCHAR(255) PRIMARY KEY, device_id VARCHAR(255) PRIMARY KEY,
shared BOOLEAN NOT NULL, shared BOOLEAN NOT NULL,
sync_token TEXT NOT NULL, sync_token TEXT NOT NULL,
account bytea NOT NULL account bytea NOT NULL
)`) )`)
if err != nil {
return err
}
err = tx.Exec(`CREATE TABLE crypto_megolm_outbound_session ( tx.Exec(`CREATE TABLE crypto_megolm_outbound_session (
room_id VARCHAR(255) PRIMARY KEY, room_id VARCHAR(255) PRIMARY KEY,
session_id CHAR(43) NOT NULL UNIQUE, session_id CHAR(43) NOT NULL UNIQUE,
session bytea NOT NULL, session bytea NOT NULL,
@ -190,9 +151,6 @@ func init() {
created_at timestamp NOT NULL, created_at timestamp NOT NULL,
last_used timestamp NOT NULL last_used timestamp NOT NULL
)`) )`)
if err != nil {
return err
}
return nil return nil
}} }}