Fix notifications table not being created on initial setup

This commit is contained in:
kolaente 2021-02-22 21:20:13 +01:00
parent 2178166ece
commit 4880a0265b
Signed by untrusted user: konrad
GPG Key ID: F40E70337AB24C9B
3 changed files with 46 additions and 0 deletions

View File

@ -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

View File

@ -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...)
}

39
pkg/notifications/db.go Normal file
View File

@ -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 <https://www.gnu.org/licenses/>.
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{},
}
}