diff options
| author | Bobby <[email protected]> | 2025-06-16 06:06:02 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2025-06-16 06:06:02 +0530 |
| commit | cfa8164f2468ea5a63b4cce2edb01957846b2b12 (patch) | |
| tree | 6bb3c9c3bf206c2cae48420f9c142fa85aef8e98 /database | |
| parent | 5e665642bf30a9902d191cec86a33fd3b878359a (diff) | |
| download | imageboard-cfa8164f2468ea5a63b4cce2edb01957846b2b12.tar.xz imageboard-cfa8164f2468ea5a63b4cce2edb01957846b2b12.zip | |
moved app secret, dev mode to server config. added min password length
Diffstat (limited to 'database')
| -rw-r--r-- | database/database.go | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/database/database.go b/database/database.go new file mode 100644 index 0000000..d063cfc --- /dev/null +++ b/database/database.go @@ -0,0 +1,49 @@ +package database + +import ( + "fmt" + "imageboard/config" + "log" + + "gorm.io/driver/postgres" + "gorm.io/gorm" + "gorm.io/gorm/logger" +) + +var ( + DB *gorm.DB + err error +) + +func init() { + dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%d sslmode=%s", + config.Database.Host, + config.Database.Username, + config.Database.Password, + config.Database.DatabaseName, + config.Database.Port, + config.Database.SSLMode, + ) + + logLevel := logger.Silent + if config.Server.IsDevMode { + logLevel = logger.Info + } + + DB, err = gorm.Open(postgres.Open(dsn), &gorm.Config{ + Logger: logger.Default.LogMode(logLevel), + }) + if err != nil { + log.Fatalf("failed to connect to database: %v", err) + } + + if err := autoMigrate(); err != nil { + log.Fatalf("failed to auto migrate database: %v", err) + } + + log.Println("Database connection established successfully") +} + +func autoMigrate() error { + return DB.AutoMigrate() +} |
