diff options
| author | Wayne-Cole <77279425+Wacky404@users.noreply.github.com> | 2025-12-06 23:20:04 -0600 |
|---|---|---|
| committer | Wayne-Cole <77279425+Wacky404@users.noreply.github.com> | 2025-12-06 23:20:04 -0600 |
| commit | 5cff4eb71a4e8c0a14634b5ceb47ee0ca00ff85e (patch) | |
| tree | c95f90fb1308098dd7772f07dea0844c4352e094 | |
| parent | e011ee837efb4e96df21f56a15e2809f4915c4c3 (diff) | |
| download | rpserver-5cff4eb71a4e8c0a14634b5ceb47ee0ca00ff85e.tar.xz rpserver-5cff4eb71a4e8c0a14634b5ceb47ee0ca00ff85e.zip | |
chore: updating files
| -rw-r--r-- | cmd/rpserver/main.go | 60 | ||||
| -rw-r--r-- | migrations/001_create_users_table.down.sql | 1 | ||||
| -rw-r--r-- | migrations/001_create_users_table.up.sql | 9 | ||||
| -rw-r--r-- | migrations/002_create_users_sessions.down.sql | 0 | ||||
| -rw-r--r-- | migrations/002_create_users_sessions_table.up.sql | 9 |
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() -); |
