Make message.CreateTable usable on postgres and sqlite

This commit is contained in:
Nicolas Werner 2019-03-06 23:03:19 +01:00
parent d46578894e
commit 9dde189438

View File

@ -18,6 +18,7 @@ package database
import ( import (
"bytes" "bytes"
"strings"
"database/sql" "database/sql"
"encoding/json" "encoding/json"
@ -34,18 +35,33 @@ type MessageQuery struct {
} }
func (mq *MessageQuery) CreateTable(dbType string) error { func (mq *MessageQuery) CreateTable(dbType string) error {
_, err := mq.db.Exec(`CREATE TABLE IF NOT EXISTS message ( if strings.ToLower(dbType) == "postgres" {
chat_jid VARCHAR(255), _, err := mq.db.Exec(`CREATE TABLE IF NOT EXISTS message (
chat_receiver VARCHAR(255), chat_jid VARCHAR(255),
jid VARCHAR(255), chat_receiver VARCHAR(255),
mxid VARCHAR(255) NOT NULL UNIQUE, jid VARCHAR(255),
sender VARCHAR(255) NOT NULL, mxid VARCHAR(255) NOT NULL UNIQUE,
content bytea NOT NULL, sender VARCHAR(255) NOT NULL,
content bytea NOT NULL,
PRIMARY KEY (chat_jid, chat_receiver, jid), PRIMARY KEY (chat_jid, chat_receiver, jid),
FOREIGN KEY (chat_jid, chat_receiver) REFERENCES portal(jid, receiver) FOREIGN KEY (chat_jid, chat_receiver) REFERENCES portal(jid, receiver)
)`) )`)
return err
} else {
_, err := mq.db.Exec(`CREATE TABLE IF NOT EXISTS message (
chat_jid VARCHAR(255),
chat_receiver VARCHAR(255),
jid VARCHAR(255),
mxid VARCHAR(255) NOT NULL UNIQUE,
sender VARCHAR(255) NOT NULL,
content BLOB NOT NULL,
PRIMARY KEY (chat_jid, chat_receiver, jid),
FOREIGN KEY (chat_jid, chat_receiver) REFERENCES portal(jid, receiver)
)`)
return err return err
}
} }
func (mq *MessageQuery) New() *Message { func (mq *MessageQuery) New() *Message {