mirror of
https://github.com/riwiwa/muzi.git
synced 2026-02-28 11:56:57 -08:00
cleaned up project structure and optimized lastfm and spotify migration
This commit is contained in:
55
migrate/migrate.go
Normal file
55
migrate/migrate.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package migrate
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/jackc/pgx/v5"
|
||||
)
|
||||
|
||||
func TableExists(name string, conn *pgx.Conn) bool {
|
||||
var exists bool
|
||||
err := conn.QueryRow(
|
||||
context.Background(),
|
||||
`SELECT EXISTS (SELECT 1 FROM pg_tables WHERE schemaname = 'public' AND
|
||||
tablename = $1);`,
|
||||
name,
|
||||
).
|
||||
Scan(&exists)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "SELECT EXISTS failed: %v\n", err)
|
||||
return false
|
||||
}
|
||||
return exists
|
||||
}
|
||||
|
||||
func DbExists() bool {
|
||||
conn, err := pgx.Connect(
|
||||
context.Background(),
|
||||
"postgres://postgres:postgres@localhost:5432/muzi",
|
||||
)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
defer conn.Close(context.Background())
|
||||
return true
|
||||
}
|
||||
|
||||
func CreateDB() error {
|
||||
conn, err := pgx.Connect(
|
||||
context.Background(),
|
||||
"postgres://postgres:postgres@localhost:5432",
|
||||
)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Cannot connect to PostgreSQL: %v\n", err)
|
||||
return err
|
||||
}
|
||||
defer conn.Close(context.Background())
|
||||
_, err = conn.Exec(context.Background(), "CREATE DATABASE muzi")
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Cannot create muzi database: %v\n", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user