Added function to create a new database if it doesn't exist
This commit is contained in:
@@ -78,6 +78,22 @@ func ResetGameIdSeq() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func createDb(host string, port string, user string, password string, dbname string) {
|
||||||
|
conninfo := fmt.Sprintf("host=%s port=%s user=%s password=%s sslmode=disable", host, port, user, password)
|
||||||
|
db, err := sql.Open("postgres", conninfo)
|
||||||
|
defer db.Close()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
_, err = db.Exec("create database " + dbname)
|
||||||
|
if err != nil {
|
||||||
|
//handle the error
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
log.Println("Finished creating database")
|
||||||
|
}
|
||||||
|
|
||||||
func Migrate_db(host string, port string, user string, password string, dbname string) {
|
func Migrate_db(host string, port string, user string, password string, dbname string) {
|
||||||
migrationInfo := fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=disable",
|
migrationInfo := fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=disable",
|
||||||
user, password, host, port, dbname)
|
user, password, host, port, dbname)
|
||||||
@@ -88,6 +104,19 @@ func Migrate_db(host string, port string, user string, password string, dbname s
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_, err = db.Query("select * from game")
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
createDb(host, port, user, password, dbname)
|
||||||
|
|
||||||
|
db, err = sql.Open("postgres", migrationInfo)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
driver, err := postgres.WithInstance(db, &postgres.Config{})
|
driver, err := postgres.WithInstance(db, &postgres.Config{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
@@ -114,11 +143,11 @@ func Migrate_db(host string, port string, user string, password string, dbname s
|
|||||||
|
|
||||||
fmt.Println("Migration version before: ", version)
|
fmt.Println("Migration version before: ", version)
|
||||||
|
|
||||||
err = m.Force(1)
|
//err = m.Force(1)
|
||||||
//err = m.Up() // or m.Steps(2) if you want to explicitly set the number of migrations to run
|
//err = m.Up() // or m.Steps(2) if you want to explicitly set the number of migrations to run
|
||||||
if err != nil {
|
//if err != nil {
|
||||||
log.Println("Force err: ", err)
|
// log.Println("Force err: ", err)
|
||||||
}
|
//}
|
||||||
|
|
||||||
err = m.Migrate(2)
|
err = m.Migrate(2)
|
||||||
//err = m.Up() // or m.Steps(2) if you want to explicitly set the number of migrations to run
|
//err = m.Up() // or m.Steps(2) if you want to explicitly set the number of migrations to run
|
||||||
|
|||||||
Reference in New Issue
Block a user