Test postgres autoincrement check
This commit is contained in:
		
							parent
							
								
									983e96f142
								
							
						
					
					
						commit
						e93dc3426e
					
				| @ -9,7 +9,7 @@ require ( | |||||||
| 	github.com/lib/pq v1.10.7 | 	github.com/lib/pq v1.10.7 | ||||||
| 	golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b // indirect | 	golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b // indirect | ||||||
| 	gorm.io/driver/mysql v1.4.0 | 	gorm.io/driver/mysql v1.4.0 | ||||||
| 	gorm.io/driver/postgres v1.4.3 | 	gorm.io/driver/postgres v1.4.4 | ||||||
| 	gorm.io/driver/sqlite v1.4.1 | 	gorm.io/driver/sqlite v1.4.1 | ||||||
| 	gorm.io/driver/sqlserver v1.4.0 | 	gorm.io/driver/sqlserver v1.4.0 | ||||||
| 	gorm.io/gorm v1.24.0 | 	gorm.io/gorm v1.24.0 | ||||||
|  | |||||||
| @ -112,6 +112,45 @@ func TestPostgres(t *testing.T) { | |||||||
| 	if err := DB.First(&result, "id = ?", harumph.ID).Error; err != nil || harumph.Name != "jinzhu1" { | 	if err := DB.First(&result, "id = ?", harumph.ID).Error; err != nil || harumph.Name != "jinzhu1" { | ||||||
| 		t.Errorf("No error should happen, but got %v", err) | 		t.Errorf("No error should happen, but got %v", err) | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
|  | 	DB.Migrator().DropTable("log_usage") | ||||||
|  | 
 | ||||||
|  | 	if err := DB.Exec(` | ||||||
|  | CREATE TABLE public.log_usage ( | ||||||
|  |     log_id bigint NOT NULL | ||||||
|  | ); | ||||||
|  | 
 | ||||||
|  | ALTER TABLE public.log_usage ALTER COLUMN log_id ADD GENERATED BY DEFAULT AS IDENTITY ( | ||||||
|  |     SEQUENCE NAME public.log_usage_log_id_seq | ||||||
|  |     START WITH 1 | ||||||
|  |     INCREMENT BY 1 | ||||||
|  |     NO MINVALUE | ||||||
|  |     NO MAXVALUE | ||||||
|  |     CACHE 1 | ||||||
|  | ); | ||||||
|  | 	`).Error; err != nil { | ||||||
|  | 		t.Fatalf("failed to create table, got error %v", err) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	columns, err := DB.Migrator().ColumnTypes("log_usage") | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("failed to get columns, got error %v", err) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	hasLogID := false | ||||||
|  | 	for _, column := range columns { | ||||||
|  | 		if column.Name() == "log_id" { | ||||||
|  | 			hasLogID = true | ||||||
|  | 			autoIncrement, ok := column.AutoIncrement() | ||||||
|  | 			if !ok || !autoIncrement { | ||||||
|  | 				t.Fatalf("column log_id should be auto incrementment") | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if !hasLogID { | ||||||
|  | 		t.Fatalf("failed to found column log_id") | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type Post struct { | type Post struct { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jinzhu
						Jinzhu