test: pg array type (#5480)
This commit is contained in:
		
							parent
							
								
									5c4016d9a3
								
							
						
					
					
						commit
						46bce170ca
					
				| @ -923,3 +923,39 @@ func TestDifferentTypeWithoutDeclaredLength(t *testing.T) { | |||||||
| 
 | 
 | ||||||
| 	AssertEqual(t, "text", strings.ToLower(ct.DatabaseTypeName())) | 	AssertEqual(t, "text", strings.ToLower(ct.DatabaseTypeName())) | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func TestMigrateArrayTypeModel(t *testing.T) { | ||||||
|  | 	if DB.Dialector.Name() != "postgres" { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	type ArrayTypeModel struct { | ||||||
|  | 		ID              uint | ||||||
|  | 		Number          string     `gorm:"type:varchar(51);NOT NULL"` | ||||||
|  | 		TextArray       []string   `gorm:"type:text[];NOT NULL"` | ||||||
|  | 		NestedTextArray [][]string `gorm:"type:text[][]"` | ||||||
|  | 		NestedIntArray  [][]int64  `gorm:"type:integer[3][3]"` | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var err error | ||||||
|  | 	DB.Migrator().DropTable(&ArrayTypeModel{}) | ||||||
|  | 
 | ||||||
|  | 	err = DB.AutoMigrate(&ArrayTypeModel{}) | ||||||
|  | 	AssertEqual(t, nil, err) | ||||||
|  | 
 | ||||||
|  | 	ct, err := findColumnType(&ArrayTypeModel{}, "number") | ||||||
|  | 	AssertEqual(t, nil, err) | ||||||
|  | 	AssertEqual(t, "varchar", ct.DatabaseTypeName()) | ||||||
|  | 
 | ||||||
|  | 	ct, err = findColumnType(&ArrayTypeModel{}, "text_array") | ||||||
|  | 	AssertEqual(t, nil, err) | ||||||
|  | 	AssertEqual(t, "text[]", ct.DatabaseTypeName()) | ||||||
|  | 
 | ||||||
|  | 	ct, err = findColumnType(&ArrayTypeModel{}, "nested_text_array") | ||||||
|  | 	AssertEqual(t, nil, err) | ||||||
|  | 	AssertEqual(t, "text[]", ct.DatabaseTypeName()) | ||||||
|  | 
 | ||||||
|  | 	ct, err = findColumnType(&ArrayTypeModel{}, "nested_int_array") | ||||||
|  | 	AssertEqual(t, nil, err) | ||||||
|  | 	AssertEqual(t, "integer[]", ct.DatabaseTypeName()) | ||||||
|  | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Cr
						Cr