From 9ecaf33d86296a20de11d4090b7913db2444b5b6 Mon Sep 17 00:00:00 2001 From: ston1th Date: Sat, 24 Aug 2019 18:33:13 +0200 Subject: [PATCH] better migrator and page timing --- pkg/db/migration.go | 17 +++++++++-------- pkg/server/context.go | 10 ++++++++-- pkg/server/templates.go | 2 +- templates/index.html | 2 +- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/pkg/db/migration.go b/pkg/db/migration.go index ef2fd90..ace8dec 100644 --- a/pkg/db/migration.go +++ b/pkg/db/migration.go @@ -11,14 +11,13 @@ const ( currentVersion = 1 ) -type migrator func(*DB) (int, error) +type migrator func(*DB, int) error var migrators = []migrator{ - func(db *DB) (int, error) { - return 0, nil + func(_ *DB, _ int) error { + return nil }, - func(db *DB) (version int, err error) { - version = 1 + func(db *DB, version int) (err error) { // recreate all pages with new format var pages []string db.store.ForEachPrefix(pagePrefix, func(k string, _ []byte) error { @@ -72,15 +71,17 @@ func (db *DB) RunMigrations() (err error) { log.Printf("db: database version %d", version) for version < currentVersion { v := version + 1 - log.Printf("db: running migration %d", v) - version, err = migrators[v](db) + log.Printf("db: running migration verison %d", v) + err = migrators[v](db, v) if err != nil { return } - err = db.store.Set(versionKey, version) + err = db.store.Set(versionKey, v) if err != nil { return } + version = v + log.Printf("db: database version %d", version) } return } diff --git a/pkg/server/context.go b/pkg/server/context.go index cc7491d..c8494e4 100644 --- a/pkg/server/context.go +++ b/pkg/server/context.go @@ -11,6 +11,7 @@ import ( "html/template" "net/http" "net/url" + "strconv" "time" ) @@ -60,7 +61,7 @@ type Context struct { type webData struct { Version string - Time int64 + Time string Title string BodyTitle string @@ -112,7 +113,12 @@ func (c *Context) Exec() { c.Data.Admin = c.Admin() c.Data.User = c.User() c.Data.Login = c.LoggedOn() - c.Data.Time = time.Since(c.Time).Nanoseconds() / 1e6 + + t := strconv.Itoa(int(time.Since(c.Time).Nanoseconds()/1e6)) + "ms" + if t == "0ms" { + t = strconv.Itoa(int(time.Since(c.Time).Nanoseconds()/1e5)) + "µs" + } + c.Data.Time = t if c.Data.Msg != "" { c.Status = http.StatusBadRequest diff --git a/pkg/server/templates.go b/pkg/server/templates.go index 2e789be..ee1e210 100644 --- a/pkg/server/templates.go +++ b/pkg/server/templates.go @@ -69,7 +69,7 @@ const (
  • Blacklist
  • {{end}} -

    © GoWiki {{.Version}} Request: {{.Time}}ms

    +

    © GoWiki {{.Version}} Request: {{.Time}}

    diff --git a/templates/index.html b/templates/index.html index 5e705ca..a63d340 100644 --- a/templates/index.html +++ b/templates/index.html @@ -37,7 +37,7 @@
  • Blacklist
  • {{end}} -

    © GoWiki {{.Version}} Request: {{.Time}}ms

    +

    © GoWiki {{.Version}} Request: {{.Time}}