summaryrefslogtreecommitdiff
path: root/database/migrate.go
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-04-21 18:46:40 -0700
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-04-21 18:46:40 -0700
commitd14605d1388aaa7cc9ef1c230eae5ba14c9cef44 (patch)
tree59fcda0fae7899ca577eed1f72d89bff17d5ad5d /database/migrate.go
downloadbackup-notify-d14605d1388aaa7cc9ef1c230eae5ba14c9cef44.tar.gz
backup-notify-d14605d1388aaa7cc9ef1c230eae5ba14c9cef44.zip
initial commit
Diffstat (limited to 'database/migrate.go')
-rw-r--r--database/migrate.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/database/migrate.go b/database/migrate.go
new file mode 100644
index 0000000..f2087cc
--- /dev/null
+++ b/database/migrate.go
@@ -0,0 +1,42 @@
+package database
+
+import (
+ "log"
+
+ "database/sql"
+
+ _ "github.com/mattn/go-sqlite3"
+)
+
+type Migrator func(*sql.DB) (*sql.DB, error)
+
+func MigrateBackups(dbConn *sql.DB) (*sql.DB, error) {
+ log.Println("migrating backups table")
+
+ _, err := dbConn.Exec(`CREATE TABLE IF NOT EXISTS backups (
+ hostname TEXT NOT NULL,
+ received_on TIMESTAMP DEFAULT CURRENT_TIMESTAMP
+ );`)
+ if err != nil {
+ return dbConn, err
+ }
+
+ return dbConn, nil
+}
+
+func Migrate(dbConn *sql.DB) (*sql.DB, error) {
+ log.Println("migrating database")
+
+ migrations := []Migrator{
+ MigrateBackups,
+ }
+
+ for _, migration := range migrations {
+ dbConn, err := migration(dbConn)
+ if err != nil {
+ return dbConn, err
+ }
+ }
+
+ return dbConn, nil
+}