migrate.go 725 B

1234567891011121314151617181920212223242526272829
  1. package tests
  2. import (
  3. "math/rand"
  4. "testing"
  5. "time"
  6. "github.com/jinzhu/gorm"
  7. )
  8. func TestMigrate(t *testing.T, db *gorm.DB) {
  9. allModels := []interface{}{&User{}, &Account{}, &Pet{}, &Company{}, &Toy{}, &Language{}}
  10. rand.Seed(time.Now().UnixNano())
  11. rand.Shuffle(len(allModels), func(i, j int) { allModels[i], allModels[j] = allModels[j], allModels[i] })
  12. if err := db.Migrator().DropTable(allModels...); err != nil {
  13. t.Errorf("Failed to drop table, got error %v", err)
  14. }
  15. if err := db.AutoMigrate(allModels...); err != nil {
  16. t.Errorf("Failed to auto migrate, but got error %v", err)
  17. }
  18. for _, m := range allModels {
  19. if !db.Migrator().HasTable(m) {
  20. t.Errorf("Failed to create table for %#v", m)
  21. }
  22. }
  23. }