Changes database initialization

This commit is contained in:
Dennis Schoepf 2024-09-03 19:49:03 +02:00
parent c0b6ecbf1c
commit ccc85259cb
3 changed files with 45 additions and 7 deletions

View file

@ -8,15 +8,18 @@ import (
migrate "github.com/rubenv/sql-migrate" migrate "github.com/rubenv/sql-migrate"
) )
var db *sql.DB
//go:embed migrations/* //go:embed migrations/*
var dbMigrations embed.FS var dbMigrations embed.FS
func Connect(path string) (*sql.DB, error) { func Open(path string) error {
var err error
dbOptions := "?_fk=on&_journal=WAL&sync=normal" dbOptions := "?_fk=on&_journal=WAL&sync=normal"
db, err := sql.Open("sqlite3", path+dbOptions) db, err = sql.Open("sqlite3", path+dbOptions)
if err != nil { if err != nil {
return nil, err return err
} }
migrations := migrate.EmbedFileSystemMigrationSource{ migrations := migrate.EmbedFileSystemMigrationSource{
@ -24,9 +27,13 @@ func Connect(path string) (*sql.DB, error) {
Root: "migrations", Root: "migrations",
} }
if _, err := migrate.Exec(db, "sqlite3", migrations, migrate.Up); err != nil { if _, migrateErr := migrate.Exec(db, "sqlite3", migrations, migrate.Up); migrateErr != nil {
return nil, err return migrateErr
} }
return db, nil if pingErr := db.Ping(); pingErr != nil {
return pingErr
}
return nil
} }

29
internal/database/feed.go Normal file
View file

@ -0,0 +1,29 @@
package database
type FeedType string
const (
RSS FeedType = "RSS"
)
type Feed struct {
Name string
Url string
FeedType FeedType
}
func (f Feed) Insert() (int64, error) {
result, err := db.Exec("INSERT INTO feed (name, url, type) VALUES (?,?,?)", f.Name, f.Url, f.FeedType)
if err != nil {
return 0, err
}
id, err := result.LastInsertId()
if err != nil {
return 0, err
}
return id, nil
}

View file

@ -16,7 +16,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package main package main
import "freed/cmd" import (
"freed/cmd"
)
func main() { func main() {
cmd.Execute() cmd.Execute()