test: test for skip prepared when auto migrate (#5350)
This commit is contained in:
		
							parent
							
								
									540fb49bcb
								
							
						
					
					
						commit
						7d1a92d60e
					
				| @ -7,6 +7,7 @@ import ( | ||||
| 	"testing" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"gorm.io/driver/postgres" | ||||
| 	"gorm.io/gorm" | ||||
| 	"gorm.io/gorm/schema" | ||||
| 	. "gorm.io/gorm/utils/tests" | ||||
| @ -712,3 +713,38 @@ func TestPrimarykeyID(t *testing.T) { | ||||
| 		t.Fatalf("AutoMigrate err:%v", err) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func TestInvalidCachedPlan(t *testing.T) { | ||||
| 	if DB.Dialector.Name() != "postgres" { | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	db, err := gorm.Open(postgres.Open(postgresDSN), &gorm.Config{}) | ||||
| 	if err != nil { | ||||
| 		t.Errorf("Open err:%v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	type Object1 struct{} | ||||
| 	type Object2 struct { | ||||
| 		Field1 string | ||||
| 	} | ||||
| 	type Object3 struct { | ||||
| 		Field2 string | ||||
| 	} | ||||
| 	db.Migrator().DropTable("objects") | ||||
| 
 | ||||
| 	err = db.Table("objects").AutoMigrate(&Object1{}) | ||||
| 	if err != nil { | ||||
| 		t.Errorf("AutoMigrate err:%v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	err = db.Table("objects").AutoMigrate(&Object2{}) | ||||
| 	if err != nil { | ||||
| 		t.Errorf("AutoMigrate err:%v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	err = db.Table("objects").AutoMigrate(&Object3{}) | ||||
| 	if err != nil { | ||||
| 		t.Errorf("AutoMigrate err:%v", err) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -17,6 +17,11 @@ import ( | ||||
| ) | ||||
| 
 | ||||
| var DB *gorm.DB | ||||
| var ( | ||||
| 	mysqlDSN     = "gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True&loc=Local" | ||||
| 	postgresDSN  = "user=gorm password=gorm dbname=gorm host=localhost port=9920 sslmode=disable TimeZone=Asia/Shanghai" | ||||
| 	sqlserverDSN = "sqlserver://gorm:LoremIpsum86@localhost:9930?database=gorm" | ||||
| ) | ||||
| 
 | ||||
| func init() { | ||||
| 	var err error | ||||
| @ -49,13 +54,13 @@ func OpenTestConnection() (db *gorm.DB, err error) { | ||||
| 	case "mysql": | ||||
| 		log.Println("testing mysql...") | ||||
| 		if dbDSN == "" { | ||||
| 			dbDSN = "gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True&loc=Local" | ||||
| 			dbDSN = mysqlDSN | ||||
| 		} | ||||
| 		db, err = gorm.Open(mysql.Open(dbDSN), &gorm.Config{}) | ||||
| 	case "postgres": | ||||
| 		log.Println("testing postgres...") | ||||
| 		if dbDSN == "" { | ||||
| 			dbDSN = "user=gorm password=gorm dbname=gorm host=localhost port=9920 sslmode=disable TimeZone=Asia/Shanghai" | ||||
| 			dbDSN = postgresDSN | ||||
| 		} | ||||
| 		db, err = gorm.Open(postgres.New(postgres.Config{ | ||||
| 			DSN:                  dbDSN, | ||||
| @ -72,7 +77,7 @@ func OpenTestConnection() (db *gorm.DB, err error) { | ||||
| 		// GO
 | ||||
| 		log.Println("testing sqlserver...") | ||||
| 		if dbDSN == "" { | ||||
| 			dbDSN = "sqlserver://gorm:LoremIpsum86@localhost:9930?database=gorm" | ||||
| 			dbDSN = sqlserverDSN | ||||
| 		} | ||||
| 		db, err = gorm.Open(sqlserver.Open(dbDSN), &gorm.Config{}) | ||||
| 	default: | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Cr
						Cr