From 86167991e59ccdbf5fab38ea3dfdcb97b0a8c61b Mon Sep 17 00:00:00 2001 From: Ted Unangst Date: Wed, 28 Aug 2019 11:51:44 -0400 Subject: [PATCH] redo tag upgrade --- upgradedb.go | 22 ++++++++++++++++------ util.go | 2 +- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/upgradedb.go b/upgradedb.go index 0064785..8975849 100644 --- a/upgradedb.go +++ b/upgradedb.go @@ -20,6 +20,7 @@ import ( "fmt" "log" "os" + "regexp" "strings" ) @@ -122,14 +123,19 @@ func upgradedb() { fallthrough case 14: doordie(db, "alter table honks add column onts text") - doordie(db, "update honks set onts = ''") doordie(db, "create table onts (ontology text, honkid integer)") doordie(db, "create index idx_ontology on onts(ontology)") + doordie(db, "update config set value = 15 where key = 'dbversion'") + fallthrough + case 15: + doordie(db, "update honks set onts = ''") + doordie(db, "delete from onts") ontmap := make(map[int64][]string) rows, err := db.Query("select honkid, noise from honks") if err != nil { log.Fatalf("can't query honks: %s", err) } + re_more := regexp.MustCompile(`#[[:alpha:]][[:alnum:]-]*`) for rows.Next() { var honkid int64 var noise string @@ -137,9 +143,13 @@ func upgradedb() { if err != nil { log.Fatalf("can't scan honks: %s", err) } - o := ontologies(noise) - if len(o) > 0 { - ontmap[honkid] = o + onts := ontologies(noise) + mo := re_more.FindAllString(noise, -1) + for _, o := range mo { + onts = append(onts, o[7:]) + } + if len(onts) > 0 { + ontmap[honkid] = oneofakind(onts) } } rows.Close() @@ -171,9 +181,9 @@ func upgradedb() { if err != nil { log.Fatalf("can't commit: %s", err) } - doordie(db, "update config set value = 15 where key = 'dbversion'") + doordie(db, "update config set value = 16 where key = 'dbversion'") fallthrough - case 15: + case 16: default: log.Fatalf("can't upgrade unknown version %d", dbversion) } diff --git a/util.go b/util.go index c82e62f..9c71f0b 100644 --- a/util.go +++ b/util.go @@ -72,7 +72,7 @@ var dbtimeformat = "2006-01-02 15:04:05" var alreadyopendb *sql.DB var dbname = "honk.db" var stmtConfig *sql.Stmt -var myVersion = 15 +var myVersion = 16 func initdb() { schema, err := ioutil.ReadFile("schema.sql")