better migrator and page timing

This commit is contained in:
ston1th 2019-08-24 18:33:13 +02:00
commit 9ecaf33d86
4 changed files with 19 additions and 12 deletions

View file

@ -11,14 +11,13 @@ const (
currentVersion = 1 currentVersion = 1
) )
type migrator func(*DB) (int, error) type migrator func(*DB, int) error
var migrators = []migrator{ var migrators = []migrator{
func(db *DB) (int, error) { func(_ *DB, _ int) error {
return 0, nil return nil
}, },
func(db *DB) (version int, err error) { func(db *DB, version int) (err error) {
version = 1
// recreate all pages with new format // recreate all pages with new format
var pages []string var pages []string
db.store.ForEachPrefix(pagePrefix, func(k string, _ []byte) error { 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) log.Printf("db: database version %d", version)
for version < currentVersion { for version < currentVersion {
v := version + 1 v := version + 1
log.Printf("db: running migration %d", v) log.Printf("db: running migration verison %d", v)
version, err = migrators[v](db) err = migrators[v](db, v)
if err != nil { if err != nil {
return return
} }
err = db.store.Set(versionKey, version) err = db.store.Set(versionKey, v)
if err != nil { if err != nil {
return return
} }
version = v
log.Printf("db: database version %d", version)
} }
return return
} }

View file

@ -11,6 +11,7 @@ import (
"html/template" "html/template"
"net/http" "net/http"
"net/url" "net/url"
"strconv"
"time" "time"
) )
@ -60,7 +61,7 @@ type Context struct {
type webData struct { type webData struct {
Version string Version string
Time int64 Time string
Title string Title string
BodyTitle string BodyTitle string
@ -112,7 +113,12 @@ func (c *Context) Exec() {
c.Data.Admin = c.Admin() c.Data.Admin = c.Admin()
c.Data.User = c.User() c.Data.User = c.User()
c.Data.Login = c.LoggedOn() 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 != "" { if c.Data.Msg != "" {
c.Status = http.StatusBadRequest c.Status = http.StatusBadRequest

View file

@ -69,7 +69,7 @@ const (
<li><a href="/blacklist">Blacklist</a></li> <li><a href="/blacklist">Blacklist</a></li>
{{end}} {{end}}
</ul> </ul>
<p>© GoWiki {{.Version}} Request: <strong>{{.Time}}ms</strong></p> <p>© GoWiki {{.Version}} Request: <strong>{{.Time}}</strong></p>
</div> </div>
</div> </div>
</footer> </footer>

View file

@ -37,7 +37,7 @@
<li><a href="/blacklist">Blacklist</a></li> <li><a href="/blacklist">Blacklist</a></li>
{{end}} {{end}}
</ul> </ul>
<p>© GoWiki {{.Version}} Request: <strong>{{.Time}}ms</strong></p> <p>© GoWiki {{.Version}} Request: <strong>{{.Time}}</strong></p>
</div> </div>
</div> </div>
</footer> </footer>