summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWayne-Cole <77279425+Wacky404@users.noreply.github.com>2025-12-06 23:20:04 -0600
committerWayne-Cole <77279425+Wacky404@users.noreply.github.com>2025-12-06 23:20:04 -0600
commit5cff4eb71a4e8c0a14634b5ceb47ee0ca00ff85e (patch)
treec95f90fb1308098dd7772f07dea0844c4352e094
parente011ee837efb4e96df21f56a15e2809f4915c4c3 (diff)
downloadrpserver-5cff4eb71a4e8c0a14634b5ceb47ee0ca00ff85e.tar.xz
rpserver-5cff4eb71a4e8c0a14634b5ceb47ee0ca00ff85e.zip
chore: updating files
-rw-r--r--cmd/rpserver/main.go60
-rw-r--r--migrations/001_create_users_table.down.sql1
-rw-r--r--migrations/001_create_users_table.up.sql9
-rw-r--r--migrations/002_create_users_sessions.down.sql0
-rw-r--r--migrations/002_create_users_sessions_table.up.sql9
5 files changed, 22 insertions, 57 deletions
diff --git a/cmd/rpserver/main.go b/cmd/rpserver/main.go
index 854e493..cc19040 100644
--- a/cmd/rpserver/main.go
+++ b/cmd/rpserver/main.go
@@ -1,29 +1,27 @@
+// TODO: Left off fixing this: 2025/08/03 15:49:13 error occured when trying to determine if migration needed: failed to check pending migrations: file does not exist
package main
import (
"database/sql"
+ "errors"
"flag"
"log"
"net/http"
"os"
+ "github.com/Wacky404/rpserver/db"
"github.com/Wacky404/rpserver/internal/cmd"
"github.com/joho/godotenv"
"github.com/golang-migrate/migrate"
- "github.com/golang-migrate/migrate/database"
- "github.com/golang-migrate/migrate/database/cockroachdb"
- "github.com/golang-migrate/migrate/database/postgres"
- "github.com/golang-migrate/migrate/database/sqlite3"
-
- _ "github.com/golang-migrate/migrate/v4/database"
- _ "github.com/golang-migrate/migrate/v4/source/file"
+ _ "github.com/golang-migrate/migrate/v4/source/github"
_ "github.com/lib/pq"
)
func main() {
certFile := flag.String("cert", "/rpserver/certs/localhost.pem", "TLS certificate file")
keyFile := flag.String("key", "/rpserver/certs/localhost-key.pem", "TLS key file")
+ forceMigrate := flag.Bool("migrate", false, "Force run migrations")
flag.Parse()
@@ -47,46 +45,32 @@ func main() {
dbProvider = string(os.Getenv("DATABASE_PROVIDER"))
)
- db, err := sql.Open(dbProvider, dbUrl)
+ conn, err := sql.Open(dbProvider, dbUrl)
if err != nil {
log.Fatalf("Failed to open DB: %v", err)
}
- defer db.Close()
+ defer conn.Close()
- // this ish not working for some reason; going through it
- if err := db.Ping(); err != nil {
+ if err := conn.Ping(); err != nil {
log.Fatalf("Failed to establish connection with DB: %v", err)
}
- var driver database.Driver
-
- switch dbProvider {
- case "postgres":
- driver, err = postgres.WithInstance(db, &postgres.Config{})
- case "cockroachdb":
- driver, err = cockroachdb.WithInstance(db, &cockroachdb.Config{})
- case "sqlite3":
- driver, err = sqlite3.WithInstance(db, &sqlite3.Config{})
- default:
- log.Fatalf("Unsupported DB provided: %s", dbProvider)
- }
-
- if err != nil {
- log.Fatalf("Failed to create DB driver: %v", err)
- }
-
- m, err := migrate.NewWithDatabaseInstance(
- // file:///absolute/path | file://relative/path
- "file:///migrations",
- dbProvider,
- driver,
- )
+ // creating migrator
+ m, err := db.NewMigrator(conn, dbProvider, dbUrl)
if err != nil {
- log.Fatalf("Migration init failed: %v", err)
+ log.Fatalf("Failed to create new Migrator: %v", err)
}
+ defer m.Close()
- if err := m.Up(); err != nil {
- log.Fatalf("Migrations failed: %v", err)
+ if *forceMigrate {
+ log.Println("Force running migrations...")
+ if err := m.Migrate.Up(); err != nil && !errors.Is(err, migrate.ErrNoChange) {
+ log.Fatalf("failed to migrate up: %v", err)
+ }
+ } else {
+ if err := m.MigrateIfNeeded(); err != nil {
+ log.Fatalf("error occured when trying to determine if migration needed: %v", err)
+ }
}
go func() {
@@ -97,7 +81,7 @@ func main() {
}
}()
- log.Println("HTTP server is running on http://localhost:8080")
+ log.Println("HTTP server is running on http://localhost:8080 to redirect traffic to HTTPS")
err = http.ListenAndServe(":8080", http.HandlerFunc(redirectToHTTPS))
if err != nil {
log.Fatal(err)
diff --git a/migrations/001_create_users_table.down.sql b/migrations/001_create_users_table.down.sql
deleted file mode 100644
index c99ddcd..0000000
--- a/migrations/001_create_users_table.down.sql
+++ /dev/null
@@ -1 +0,0 @@
-DROP TABLE IF EXISTS users;
diff --git a/migrations/001_create_users_table.up.sql b/migrations/001_create_users_table.up.sql
deleted file mode 100644
index bce2771..0000000
--- a/migrations/001_create_users_table.up.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-CREATE TABLE users (
- id UUID PRIMARY KEY,
- name TEXT NOT NULL UNIQUE,
- password TEXT NOT NULL,
- admin BOOLEAN NOT NULL DEFAULT false,
- token VARCHAR(36),
- created_at TIMESTAMP DEFAULT now(),
- last_updated TIMESTAMP DEFAULT now()
-);
diff --git a/migrations/002_create_users_sessions.down.sql b/migrations/002_create_users_sessions.down.sql
deleted file mode 100644
index e69de29..0000000
--- a/migrations/002_create_users_sessions.down.sql
+++ /dev/null
diff --git a/migrations/002_create_users_sessions_table.up.sql b/migrations/002_create_users_sessions_table.up.sql
deleted file mode 100644
index 8c7167f..0000000
--- a/migrations/002_create_users_sessions_table.up.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-CREATE TABLE users_sessions (
- session_id UUID PRIMARY KEY,
- user_id UUID,
- ip TEXT NOT NULL,
- ua TEXT NOT NULL,
- expires_at TIMESTAMP NOT NULL,
- created_at TIMESTAMP DEFAULT now(),
- last_updated TIMESTAMP DEFAULT now()
-);