package logins import ( "gorm.io/driver/postgres" "gorm.io/gorm" ) type Users struct { Username string `gorm:"primaryKey"` Email string `gorm:"unique:users_email_key"` Password string `gorm:""` } func DropUnusedColumns(DB *gorm.DB, values ...interface{}) { for _, dst := range values { stmt := &gorm.Statement{DB: DB} stmt.Parse(dst) fields := stmt.Schema.Fields columns, _ := DB.Debug().Migrator().ColumnTypes(dst) for i := range columns { found := false for j := range fields { if columns[i].Name() == fields[j].DBName { found = true break } } if !found { DB.Migrator().DropColumn(dst, columns[i].Name()) } } } } func Init_database() { dsn := "postgres://acc:totor@postgres:5432/accounts?sslmode=disable" db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{}) if err != nil { } db.AutoMigrate(&Users{}) DropUnusedColumns(db, &Users{}) }