|
@@ -2,26 +2,19 @@ package upgrades
|
|
|
|
|
|
import (
|
|
|
"database/sql"
|
|
|
- "fmt"
|
|
|
)
|
|
|
|
|
|
func init() {
|
|
|
upgrades[0] = upgrade{"Initial schema", func(tx *sql.Tx, ctx context) error {
|
|
|
- var byteType string
|
|
|
- if ctx.dialect == SQLite {
|
|
|
- byteType = "BLOB"
|
|
|
- } else {
|
|
|
- byteType = "bytea"
|
|
|
- }
|
|
|
_, err := tx.Exec(`CREATE TABLE IF NOT EXISTS portal (
|
|
|
jid VARCHAR(255),
|
|
|
receiver VARCHAR(255),
|
|
|
mxid VARCHAR(255) UNIQUE,
|
|
|
-
|
|
|
+
|
|
|
name VARCHAR(255) NOT NULL,
|
|
|
topic VARCHAR(255) NOT NULL,
|
|
|
avatar VARCHAR(255) NOT NULL,
|
|
|
-
|
|
|
+
|
|
|
PRIMARY KEY (jid, receiver)
|
|
|
)`)
|
|
|
if err != nil {
|
|
@@ -38,7 +31,7 @@ func init() {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- _, err = tx.Exec(fmt.Sprintf(`CREATE TABLE IF NOT EXISTS "user" (
|
|
|
+ _, err = tx.Exec(`CREATE TABLE IF NOT EXISTS "user" (
|
|
|
mxid VARCHAR(255) PRIMARY KEY,
|
|
|
jid VARCHAR(255) UNIQUE,
|
|
|
|
|
@@ -47,24 +40,24 @@ func init() {
|
|
|
client_id VARCHAR(255),
|
|
|
client_token VARCHAR(255),
|
|
|
server_token VARCHAR(255),
|
|
|
- enc_key %[1]s,
|
|
|
- mac_key %[1]s
|
|
|
- )`, byteType))
|
|
|
+ enc_key bytea,
|
|
|
+ mac_key bytea
|
|
|
+ )`)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- _, err = tx.Exec(fmt.Sprintf(`CREATE TABLE IF NOT EXISTS message (
|
|
|
+ _, err = tx.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 %[1]s NOT NULL,
|
|
|
+ content bytea NOT NULL,
|
|
|
|
|
|
PRIMARY KEY (chat_jid, chat_receiver, jid),
|
|
|
FOREIGN KEY (chat_jid, chat_receiver) REFERENCES portal(jid, receiver) ON DELETE CASCADE
|
|
|
- )`, byteType))
|
|
|
+ )`)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|