diff --git a/dbi/dbi.go b/dbi/dbi.go new file mode 100644 index 0000000..e6c7169 --- /dev/null +++ b/dbi/dbi.go @@ -0,0 +1,32 @@ +package dbi + +import ( + "database/sql" + "os" + + _ "modernc.org/sqlite" +) + +func GetDbConn() (*sql.DB, error) { + const dbPath = "data/facultyactivity.sqlite" + + _, err := os.Stat(dbPath) + if os.IsNotExist(err) { + if err := os.MkdirAll("data", 0755); err != nil { + return nil, err + } + db, err := sql.Open("sqlite", dbPath) + if err != nil { + return nil, err + } + if _, err := db.Exec(ActivityReportSchema); err != nil { + db.Close() + return nil, err + } + return db, nil + } + if err != nil { + return nil, err + } + return sql.Open("sqlite", dbPath) +}