add basic demo data

This commit is contained in:
Artlef
2025-09-22 21:10:38 +02:00
parent 232cd49052
commit 0457ca2011
3 changed files with 43 additions and 2 deletions

View File

@@ -11,7 +11,7 @@ import (
"git.artlef.fr/PersonalLibraryManager/internal/model"
)
func Initdb(databaseDir string) *gorm.DB {
func Initdb(databaseDir string, demoDataPath string) *gorm.DB {
createDbFolderIfMissing(databaseDir)
db, err := gorm.Open(
sqlite.Open(
@@ -22,9 +22,23 @@ func Initdb(databaseDir string) *gorm.DB {
}
// Migrate the schema
db.AutoMigrate(&model.Book{})
var book model.Book
queryResult := db.Limit(1).Find(&book)
if queryResult.RowsAffected == 0 && demoDataPath != "" {
migrateSchema(db, demoDataPath)
}
return db
}
func migrateSchema(db *gorm.DB, demoDataPath string) {
log.Printf("Loading demo data file %s\n", demoDataPath)
data, err := os.ReadFile(demoDataPath)
if err != nil {
log.Fatal(err)
}
db.Exec(string(data))
}
func createDbFolderIfMissing(databaseDir string) {
_, openFileErr := os.Open(databaseDir)
if os.IsNotExist(openFileErr) {