-func InsertAppInstanceInfo(db *gorm.DB, n model.AppInstanceInfo) {
- fmt.Printf("Insert App Instance Info (%v, %T)\n", n, n)
- db.Create(&model.AppInstanceInfo{ID: n.ID, AppInstanceName: n.AppInstanceName, AppInstanceDescription: n.AppInstanceDescription,
+// DB name
+const DbName = "applcmDB"
+
+// Database adapter
+type DbAdapter struct {
+ logger *logrus.Logger
+ db *gorm.DB
+}
+
+func NewDbAdapter(logger *logrus.Logger) *DbAdapter {
+ return &DbAdapter{logger: logger}
+}
+
+// Creates database
+func (adapter *DbAdapter) CreateDatabase() {
+ adapter.logger.Info("creating Database...")
+
+ usrpswd := os.Getenv("MYSQL_USER") + ":" + os.Getenv("MYSQL_PASSWORD")
+ host := "@tcp(" + "dbhost" + ":3306)/"
+
+ db, err := gorm.Open("mysql", usrpswd + host)
+ if err != nil {
+ adapter.logger.Fatalf("Database connect error", err.Error())
+ }
+
+ db.Exec("CREATE DATABASE " + DbName)
+ db.Exec("USE applcmDB")
+ gorm.DefaultCallback.Create().Remove("mysql:set_identity_insert")
+
+ adapter.logger.Info("Migrating models...")
+ db.AutoMigrate(&model.AppPackageInfo{})
+ db.AutoMigrate(&model.AppInstanceInfo{})
+ adapter.db = db
+}
+
+func (adapter *DbAdapter) InsertAppInstanceInfo(n model.AppInstanceInfo) {
+ adapter.logger.Infof("Insert App Instance Info (%v, %T)\n", n, n)
+ adapter.db.Create(&model.AppInstanceInfo{ID: n.ID, AppInstanceName: n.AppInstanceName, AppInstanceDescription: n.AppInstanceDescription,