MCPcopy
hub / github.com/go-gorm/gorm / TestMigrateSerialColumn

Function TestMigrateSerialColumn

tests/migrate_test.go:940–999  ·  view source on GitHub ↗

https://github.com/go-gorm/gorm/issues/5047

(t *testing.T)

Source from the content-addressed store, hash-verified

938
939// https://github.com/go-gorm/gorm/issues/5047
940func TestMigrateSerialColumn(t *testing.T) {
941 if DB.Dialector.Name() != "postgres" && DB.Dialector.Name() != "gaussdb" {
942 return
943 }
944
945 type Event struct {
946 ID uint `gorm:"primarykey"`
947 UID uint32
948 }
949
950 type Event1 struct {
951 ID uint `gorm:"primarykey"`
952 UID uint32 `gorm:"not null;autoIncrement"`
953 }
954
955 type Event2 struct {
956 ID uint `gorm:"primarykey"`
957 UID uint16 `gorm:"not null;autoIncrement"`
958 }
959
960 var err error
961 err = DB.Migrator().DropTable(&Event{})
962 if err != nil {
963 t.Errorf("DropTable err:%v", err)
964 }
965
966 // create sequence
967 err = DB.Table("events").AutoMigrate(&Event1{})
968 if err != nil {
969 t.Errorf("AutoMigrate err:%v", err)
970 }
971
972 // delete sequence
973 err = DB.Table("events").AutoMigrate(&Event{})
974 if err != nil {
975 t.Errorf("AutoMigrate err:%v", err)
976 }
977
978 // update sequence
979 err = DB.Table("events").AutoMigrate(&Event1{})
980 if err != nil {
981 t.Errorf("AutoMigrate err:%v", err)
982 }
983 err = DB.Table("events").AutoMigrate(&Event2{})
984 if err != nil {
985 t.Errorf("AutoMigrate err:%v", err)
986 }
987
988 DB.Table("events").Save(&Event2{})
989 DB.Table("events").Save(&Event2{})
990 DB.Table("events").Save(&Event2{})
991
992 events := make([]*Event, 0)
993 DB.Table("events").Find(&events)
994
995 AssertEqual(t, 3, len(events))
996 for _, v := range events {
997 AssertEqual(t, v.ID, v.UID)

Callers

nothing calls this directly

Calls 8

SaveMethod · 0.80
NameMethod · 0.65
DropTableMethod · 0.65
MigratorMethod · 0.65
AutoMigrateMethod · 0.65
TableMethod · 0.65
FindMethod · 0.65
AssertEqualFunction · 0.50

Tested by

no test coverage detected