Exemple #1
0
func migrateDown() {
	absPath := getAbsPath()

	allErrors, ok := migrate.DownSync("mysql://"+config.MysqlDSL(), absPath)
	if !ok {
		for _, error := range allErrors {
			s := error.Error()
			fmt.Println("Error! type: %T; value: %q\n", s, s)
		}
		// do sth with allErrors slice
	}
}
Exemple #2
0
// GormInit init gorm ORM.
func GormInit() (gorm.DB, error) {
	db, err := gorm.Open("mysql", config.MysqlDSL())
	//db, err := gorm.Open("sqlite3", "/tmp/gorm.db")

	// Get database connection handle [*sql.DB](http://golang.org/pkg/database/sql/#DB)
	db.DB()

	// Then you could invoke `*sql.DB`'s functions with it
	db.DB().Ping()
	db.DB().SetMaxIdleConns(10)
	db.DB().SetMaxOpenConns(100)

	// Disable table name's pluralization
	db.SingularTable(true)
	if config.Environment == "DEVELOPMENT" {
		// db.LogMode(true)
		db.AutoMigrate(&model.User{}, &model.Role{}, &model.Connection{}, &model.Language{}, &model.Article{}, &model.Location{}, &model.Comment{}, &model.File{})
		db.Model(&model.User{}).AddIndex("idx_user_token", "token")
	}
	log.CheckError(err)

	return db, err
}