gohorsejobs/backend/cmd/inspect_schema/main.go

53 lines
1 KiB
Go

package main
import (
"database/sql"
"fmt"
"log"
"os"
"github.com/joho/godotenv"
_ "github.com/lib/pq"
)
func main() {
godotenv.Load(".env")
dbURL := os.Getenv("DATABASE_URL")
if dbURL == "" {
// Fallback
host := os.Getenv("DB_HOST")
port := os.Getenv("DB_PORT")
user := os.Getenv("DB_USER")
pass := os.Getenv("DB_PASSWORD")
name := os.Getenv("DB_NAME")
ssl := os.Getenv("DB_SSLMODE")
if host != "" {
dbURL = fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=%s", user, pass, host, port, name, ssl)
} else {
log.Fatal("DB URL not found")
}
}
db, err := sql.Open("postgres", dbURL)
if err != nil {
log.Fatal(err)
}
defer db.Close()
rows, err := db.Query(`
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'users';
`)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
fmt.Println("USERS TABLE SCHEMA:")
for rows.Next() {
var colName, dataType string
rows.Scan(&colName, &dataType)
fmt.Printf("%s: %s\n", colName, dataType)
}
}