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/models"
|
||||||
"lemma/internal/secrets"
|
"lemma/internal/secrets"
|
||||||
|
|
||||||
|
_ "github.com/lib/pq" // Postgres driver
|
||||||
_ "github.com/mattn/go-sqlite3" // SQLite 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
|
return database, nil
|
||||||
case DBTypePostgres:
|
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)
|
return nil, fmt.Errorf("unsupported database type: %s", dbType)
|
||||||
@@ -160,6 +171,19 @@ func initSQLite(dbURL string) (*sql.DB, error) {
|
|||||||
return db, nil
|
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
|
// Close closes the database connection
|
||||||
func (db *database) Close() error {
|
func (db *database) Close() error {
|
||||||
log := getLogger()
|
log := getLogger()
|
||||||
|
|||||||
Reference in New Issue
Block a user