package postgres import ( "database/sql" "log" // Import the PostgreSQL driver. _ "github.com/lib/pq" "github.com/pkg/errors" "github.com/usememos/memos/server/profile" "github.com/usememos/memos/store" ) type DB struct { db *sql.DB profile *profile.Profile // Add any other fields as needed } func NewDB(profile *profile.Profile) (store.Driver, error) { if profile == nil { return nil, errors.New("profile is nil") } // Open the PostgreSQL connection db, err := sql.Open("postgres", profile.DSN) if err != nil { log.Printf("Failed to open database: %s", err) return nil, errors.Wrapf(err, "failed to open database: %s", profile.DSN) } var driver store.Driver = &DB{ db: db, profile: profile, } // Return the DB struct return driver, nil } func (d *DB) GetDB() *sql.DB { return d.db } func (d *DB) Close() error { return d.db.Close() }