Skip to content

Commit

Permalink
Added a DEV environment variable to use local .db file (#98)
Browse files Browse the repository at this point in the history
* feat: added a DEV environment variable to use local .db file

* refactor: remove duplicated code in database.go
  • Loading branch information
harshkhandeparkar committed Jun 9, 2023
1 parent 0499693 commit 417eb55
Showing 1 changed file with 25 additions and 36 deletions.
61 changes: 25 additions & 36 deletions utils/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,31 +9,13 @@ import (

// _ "github.com/jinzhu/gorm/dialects/mysql" // MySQL Dialect
_ "github.com/jinzhu/gorm/dialects/postgres"
// _ "github.com/jinzhu/gorm/dialects/sqlite" // sqlite for dev
_ "github.com/jinzhu/gorm/dialects/sqlite" // sqlite for dev
)

// InitialMigration Initialize migration
func InitialMigration() {
DatabaseUsername := os.Getenv("DATABASE_USERNAME")
DatabasePassword := os.Getenv("DATABASE_PASSWORD")
DatabaseName := os.Getenv("DATABASE_NAME")
DatabaseHost := os.Getenv("DATABASE_HOST")
DatabasePort := os.Getenv("DATABASE_PORT")

newURI := "host=" + DatabaseHost + " port=" + DatabasePort + " user=" + DatabaseUsername + " dbname=" + DatabaseName + " sslmode=disable password=" + DatabasePassword
db, err := gorm.Open("postgres", newURI)
if err != nil {
log.Err(err).Msg("Database Error")
panic(err)
}

// // temporary SQLite for ease of development
// db, err := gorm.Open("sqlite3", "kwoc.db")
// if err != nil {
// log.Err(err).Msg("Database Error")
// panic("failed to connect database")
// }
// defer db.Close()
db := GetDB()
defer db.Close()

db.AutoMigrate(&models.Mentor{})
db.AutoMigrate(&models.Student{})
Expand All @@ -44,26 +26,33 @@ func InitialMigration() {

// GetDB Get Database
func GetDB() *gorm.DB {
DatabaseUsername := os.Getenv("DATABASE_USERNAME")
DatabasePassword := os.Getenv("DATABASE_PASSWORD")
DatabaseName := os.Getenv("DATABASE_NAME")
DatabaseHost := os.Getenv("DATABASE_HOST")
DatabasePort := os.Getenv("DATABASE_PORT")
isDev := os.Getenv("DEV") == "true"

var dbDialect string
var dbURI string

if !isDev {
DatabaseUsername := os.Getenv("DATABASE_USERNAME")
DatabasePassword := os.Getenv("DATABASE_PASSWORD")
DatabaseName := os.Getenv("DATABASE_NAME")
DatabaseHost := os.Getenv("DATABASE_HOST")
DatabasePort := os.Getenv("DATABASE_PORT")

dbDialect = "postgres"
dbURI = "host=" + DatabaseHost + " port=" + DatabasePort + " user=" + DatabaseUsername + " dbname=" + DatabaseName + " sslmode=disable password=" + DatabasePassword

} else {
// SQLite database for local development
dbDialect = "sqlite3"
dbURI = "devDB.db"
}

db, err := gorm.Open(dbDialect, dbURI)

newURI := "host=" + DatabaseHost + " port=" + DatabasePort + " user=" + DatabaseUsername + " dbname=" + DatabaseName + " sslmode=disable password=" + DatabasePassword
db, err := gorm.Open("postgres", newURI)
if err != nil {
log.Err(err).Msg("Database Error")
panic(err)
}
// TODO : DB close issue

// // temporary SQLite for ease of development
// db, err := gorm.Open("sqlite3", "kwoc.db")
// if err != nil {
// log.Err(err).Msg("Database Error")
// panic(err)
// }

return db
}

0 comments on commit 417eb55

Please sign in to comment.