mirror of
https://github.com/lordmathis/lemma.git
synced 2025-11-05 15:44:21 +00:00
Add postgres init
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
"lemma/internal/models"
|
||||
"lemma/internal/secrets"
|
||||
|
||||
_ "github.com/lib/pq" // Postgres driver
|
||||
_ "github.com/mattn/go-sqlite3" // SQLite driver
|
||||
)
|
||||
|
||||
@@ -135,7 +136,17 @@ func Init(dbType DBType, dbURL string, secretsService secrets.Service) (Database
|
||||
}
|
||||
return database, nil
|
||||
case DBTypePostgres:
|
||||
return nil, fmt.Errorf("postgres database not supported yet")
|
||||
db, err := initPostgres(dbURL)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to initialize Postgres database: %w", err)
|
||||
}
|
||||
|
||||
database := &database{
|
||||
DB: db,
|
||||
secretsService: secretsService,
|
||||
dbType: dbType,
|
||||
}
|
||||
return database, nil
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("unsupported database type: %s", dbType)
|
||||
@@ -160,6 +171,19 @@ func initSQLite(dbURL string) (*sql.DB, error) {
|
||||
return db, nil
|
||||
}
|
||||
|
||||
func initPostgres(dbURL string) (*sql.DB, error) {
|
||||
db, err := sql.Open("postgres", dbURL)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to open database: %w", err)
|
||||
}
|
||||
|
||||
if err := db.Ping(); err != nil {
|
||||
return nil, fmt.Errorf("failed to ping database: %w", err)
|
||||
}
|
||||
|
||||
return db, nil
|
||||
}
|
||||
|
||||
// Close closes the database connection
|
||||
func (db *database) Close() error {
|
||||
log := getLogger()
|
||||
|
||||
Reference in New Issue
Block a user