1234567891011121314151617181920212223242526272829303132333435363738 |
- package database
- import (
- "log"
- "os"
- "path/filepath"
- "filecloud/internal/model"
- "gorm.io/driver/sqlite"
- "gorm.io/gorm"
- )
- var DB *gorm.DB
- // InitDB initializes the database connection
- func InitDB() error {
- // Create data directory if it doesn't exist
- dataDir := filepath.Join("data")
- if err := os.MkdirAll(dataDir, 0755); err != nil {
- return err
- }
- dbPath := filepath.Join(dataDir, "filecloud.db")
- db, err := gorm.Open(sqlite.Open(dbPath), &gorm.Config{})
- if err != nil {
- return err
- }
- // Auto migrate the schema
- err = db.AutoMigrate(&model.File{}, &model.User{})
- if err != nil {
- return err
- }
- DB = db
- log.Println("Database initialized successfully")
- return nil
- }
|