diff options
Diffstat (limited to 'app/controllers/db.go')
| -rw-r--r-- | app/controllers/db.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/app/controllers/db.go b/app/controllers/db.go new file mode 100644 index 0000000..9607f24 --- /dev/null +++ b/app/controllers/db.go @@ -0,0 +1,43 @@ +package controllers + +import ( + "github.com/jinzhu/gorm" + _ "github.com/mattn/go-sqlite3" + "github.com/revel/revel" +) + +type User struct { + Id int64 + Email string + Name string + Password string +} + +type Job struct { +} + +var DB *gorm.DB + +func DBInit() *sql.DB { + // Open database handler + db, err := gorm.Open("sqlite3", "/tmp/gorm.db") + + // Ping database to check if up + if err = db.DB().Ping(); err != nil { + revel.ERROR.Panicf("Failed to init database. %s \n", err) + } + + // Set Pool connections + db.DB().SetMaxIdleConns(10) + db.DB().SetMaxOpenConns(100) + + // Create tables defined as struct + db.CreateTable(&User{}) + db.CreateTable(&Job{}) + + // Add index on email + db.Model(&User{}).AddIndex("idx_user_email", "email") + + // Make database handler public + DB = db +} |
