37 lines
681 B
Go
37 lines
681 B
Go
package database
|
|
|
|
import (
|
|
"gorm.io/driver/sqlite"
|
|
"gorm.io/gorm"
|
|
"gorm.io/gorm/schema"
|
|
)
|
|
|
|
func KickoffDatabase() (*gorm.DB, error) {
|
|
db, err := gorm.Open(sqlite.Open("garden.db"), &gorm.Config{
|
|
NamingStrategy: schema.NamingStrategy{
|
|
SingularTable: true,
|
|
},
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if err := db.AutoMigrate(&AppState{}); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := db.AutoMigrate(&Files{}); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
// create the first row if it does not exist yet
|
|
if err := db.FirstOrCreate(&AppState{}, AppState{
|
|
ID: 1,
|
|
Mode: "unspecified",
|
|
Running: false,
|
|
}).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return db, nil
|
|
}
|