diff --git a/upgradedb.go b/upgradedb.go
index c7d4004..8f129c3 100644
--- a/upgradedb.go
+++ b/upgradedb.go
@@ -41,164 +41,10 @@ func upgradedb() {
getconfig("dbversion", &dbversion)
getconfig("servername", &serverName)
- if dbversion < 13 {
+ if dbversion < 40 {
elog.Fatal("database is too old to upgrade")
}
switch dbversion {
- case 25:
- doordie(db, "delete from auth")
- doordie(db, "alter table auth add column expiry text")
- doordie(db, "update config set value = 26 where key = 'dbversion'")
- fallthrough
- case 26:
- s := ""
- getconfig("servermsg", &s)
- if s == "" {
- setconfig("servermsg", "
Things happen.
")
- }
- s = ""
- getconfig("aboutmsg", &s)
- if s == "" {
- setconfig("aboutmsg", "What is honk?
Honk is amazing!")
- }
- s = ""
- getconfig("loginmsg", &s)
- if s == "" {
- setconfig("loginmsg", "
login
")
- }
- d := -1
- getconfig("devel", &d)
- if d == -1 {
- setconfig("devel", 0)
- }
- doordie(db, "update config set value = 27 where key = 'dbversion'")
- fallthrough
- case 27:
- createserveruser(db)
- doordie(db, "update config set value = 28 where key = 'dbversion'")
- fallthrough
- case 28:
- doordie(db, "drop table doovers")
- doordie(db, "create table doovers(dooverid integer primary key, dt text, tries integer, userid integer, rcpt text, msg blob)")
- doordie(db, "update config set value = 29 where key = 'dbversion'")
- fallthrough
- case 29:
- doordie(db, "alter table honkers add column owner text")
- doordie(db, "update honkers set owner = xid")
- doordie(db, "update config set value = 30 where key = 'dbversion'")
- fallthrough
- case 30:
- tx, err := db.Begin()
- if err != nil {
- elog.Fatal(err)
- }
- rows, err := tx.Query("select userid, options from users")
- if err != nil {
- elog.Fatal(err)
- }
- m := make(map[int64]string)
- for rows.Next() {
- var userid int64
- var options string
- err = rows.Scan(&userid, &options)
- if err != nil {
- elog.Fatal(err)
- }
- var uo UserOptions
- uo.SkinnyCSS = strings.Contains(options, " skinny ")
- m[userid], err = jsonify(uo)
- if err != nil {
- elog.Fatal(err)
- }
- }
- rows.Close()
- for u, o := range m {
- _, err = tx.Exec("update users set options = ? where userid = ?", o, u)
- if err != nil {
- elog.Fatal(err)
- }
- }
- err = tx.Commit()
- if err != nil {
- elog.Fatal(err)
- }
- doordie(db, "update config set value = 31 where key = 'dbversion'")
- fallthrough
- case 31:
- doordie(db, "create table tracks (xid text, fetches text)")
- doordie(db, "create index idx_trackhonkid on tracks(xid)")
- doordie(db, "update config set value = 32 where key = 'dbversion'")
- fallthrough
- case 32:
- doordie(db, "alter table xonkers add column dt text")
- doordie(db, "update xonkers set dt = ?", time.Now().UTC().Format(dbtimeformat))
- doordie(db, "update config set value = 33 where key = 'dbversion'")
- fallthrough
- case 33:
- doordie(db, "alter table honkers add column meta text")
- doordie(db, "update honkers set meta = '{}'")
- doordie(db, "update config set value = 34 where key = 'dbversion'")
- fallthrough
- case 34:
- doordie(db, "create table chonks (chonkid integer primary key, userid integer, xid text, who txt, target text, dt text, noise text, format text)")
- doordie(db, "update config set value = 35 where key = 'dbversion'")
- fallthrough
- case 35:
- doordie(db, "alter table donks add column chonkid integer")
- doordie(db, "update donks set chonkid = -1")
- doordie(db, "create index idx_donkshonk on donks(honkid)")
- doordie(db, "create index idx_donkschonk on donks(chonkid)")
- doordie(db, "update config set value = 36 where key = 'dbversion'")
- fallthrough
- case 36:
- doordie(db, "alter table honkers add column folxid text")
- doordie(db, "update honkers set folxid = 'lostdata'")
- doordie(db, "update config set value = 37 where key = 'dbversion'")
- fallthrough
- case 37:
- doordie(db, "update honkers set combos = '' where combos is null")
- doordie(db, "update honkers set owner = '' where owner is null")
- doordie(db, "update honkers set meta = '' where meta is null")
- doordie(db, "update honkers set folxid = '' where folxid is null")
- doordie(db, "update config set value = 38 where key = 'dbversion'")
- fallthrough
- case 38:
- doordie(db, "update honkers set folxid = abs(random())")
- doordie(db, "update config set value = 39 where key = 'dbversion'")
- fallthrough
- case 39:
- blobdb := openblobdb()
- doordie(blobdb, "alter table filedata add column hash text")
- doordie(blobdb, "create index idx_filehash on filedata(hash)")
- rows, err := blobdb.Query("select xid, content from filedata")
- if err != nil {
- elog.Fatal(err)
- }
- m := make(map[string]string)
- for rows.Next() {
- var xid string
- var data sql.RawBytes
- err := rows.Scan(&xid, &data)
- if err != nil {
- elog.Fatal(err)
- }
- hash := hashfiledata(data)
- m[xid] = hash
- }
- rows.Close()
- tx, err := blobdb.Begin()
- if err != nil {
- elog.Fatal(err)
- }
- for xid, hash := range m {
- doordie(tx, "update filedata set hash = ? where xid = ?", hash, xid)
- }
- err = tx.Commit()
- if err != nil {
- elog.Fatal(err)
- }
- doordie(db, "update config set value = 40 where key = 'dbversion'")
- fallthrough
case 40:
doordie(db, "PRAGMA journal_mode=WAL")
blobdb := openblobdb()