From 4880a0265b07e937e851c668377cf8d903cb3dd0 Mon Sep 17 00:00:00 2001 From: kolaente Date: Mon, 22 Feb 2021 21:20:13 +0100 Subject: [PATCH] Fix notifications table not being created on initial setup --- pkg/initialize/init.go | 5 +++++ pkg/migration/migration.go | 2 ++ pkg/notifications/db.go | 39 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 pkg/notifications/db.go diff --git a/pkg/initialize/init.go b/pkg/initialize/init.go index b817de43..2e820672 100644 --- a/pkg/initialize/init.go +++ b/pkg/initialize/init.go @@ -29,6 +29,7 @@ import ( "code.vikunja.io/api/pkg/models" "code.vikunja.io/api/pkg/modules/keyvalue" migrator "code.vikunja.io/api/pkg/modules/migration" + "code.vikunja.io/api/pkg/notifications" "code.vikunja.io/api/pkg/red" "code.vikunja.io/api/pkg/user" ) @@ -66,6 +67,10 @@ func InitEngines() { if err != nil { log.Fatal(err.Error()) } + err = notifications.InitDB() + if err != nil { + log.Fatal(err.Error()) + } } // FullInit initializes all kinds of things in the right order diff --git a/pkg/migration/migration.go b/pkg/migration/migration.go index 8102d1f5..7f77f453 100644 --- a/pkg/migration/migration.go +++ b/pkg/migration/migration.go @@ -26,6 +26,7 @@ import ( "code.vikunja.io/api/pkg/log" "code.vikunja.io/api/pkg/models" "code.vikunja.io/api/pkg/modules/migration" + "code.vikunja.io/api/pkg/notifications" "code.vikunja.io/api/pkg/user" "github.com/olekukonko/tablewriter" "src.techknowlogick.com/xormigrate" @@ -163,5 +164,6 @@ func initSchema(tx *xorm.Engine) error { schemeBeans = append(schemeBeans, files.GetTables()...) schemeBeans = append(schemeBeans, migration.GetTables()...) schemeBeans = append(schemeBeans, user.GetTables()...) + schemeBeans = append(schemeBeans, notifications.GetTables()...) return tx.Sync2(schemeBeans...) } diff --git a/pkg/notifications/db.go b/pkg/notifications/db.go new file mode 100644 index 00000000..2e7f6b0c --- /dev/null +++ b/pkg/notifications/db.go @@ -0,0 +1,39 @@ +// Vikunja is a to-do list application to facilitate your life. +// Copyright 2018-2021 Vikunja and contributors. All rights reserved. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public Licensee as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public Licensee for more details. +// +// You should have received a copy of the GNU Affero General Public Licensee +// along with this program. If not, see . + +package notifications + +import ( + "code.vikunja.io/api/pkg/config" + "code.vikunja.io/api/pkg/db" +) + +// InitDB sets up the database connection to use in this module +func InitDB() (err error) { + // Cache + if config.CacheEnabled.GetBool() && config.CacheType.GetString() == "redis" { + db.RegisterTableStructsForCache(GetTables()) + } + + return nil +} + +// GetTables returns all structs which are also a table. +func GetTables() []interface{} { + return []interface{}{ + &DatabaseNotification{}, + } +}