我正在使用GORM连接到我的数据库.我使用的是GoFibre的应用程序.我有两个端点,一个是列出所有房间的Get,另一个是创建房间的Post.我正在使用GORM MySQL驱动程序并连接到PlanetScale托管的数据库.
我的模特:-
type Room struct {
Model
RoomType string `json:"room_type" validate:"required"`
}
我的获取终结点代码:-
func GetAllRooms(c *fiber.Ctx) error {
var rooms []entities.Room
res := database.Database.Find(&rooms)
if res.RowsAffected != 0 {
return c.JSON(fiber.Map{"rooms": rooms})
} else {
return c.JSON(fiber.Map{"rooms": nil})
}
}
我的数据库代码:-(托管在PlanetScale)
var Database *gorm.DB
func ConnectDb() {
dsn := "sample_dsn/mydatabase?tls=true&interpolateParams=true"
db, err := gorm.Open(mysql.Open(dsn))
if err != nil {
panic("Failed to connect to DB")
}
// Setup Migrations Here
db.AutoMigrate(&entities.Booking{})
db.AutoMigrate(&entities.Inventory{})
db.AutoMigrate(&entities.Room{})
db.AutoMigrate(&entities.User{})
Database = db
}
控制台中的输出:-
{{1 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC {0001-01-01 00:00:00 +0000 UTC false}} }
{{2 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC {0001-01-01 00:00:00 +0000 UTC false}} }
{{3 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC {0001-01-01 00:00:00 +0000 UTC false}} }
{{4 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC {0001-01-01 00:00:00 +0000 UTC false}} }
数据库中的日期:-
id created_at updated_at deleted_at **room_type**
1 2024-01-18 19:27:36.680 2024-01-18 19:27:36.680 DOUBLE_ROOM
2 2024-01-18 19:27:41.206 2024-01-18 19:27:41.206 DOUBLE_ROOM
3 2024-01-18 19:27:49.403 2024-01-18 19:27:49.403 KING_SIZE_AC
4 2024-01-19 11:06:11.789 2024-01-19 11:06:11.789 DOUBLE_BED
接口输出:-
{
"rooms": [
{
"ID": 1,
"CreatedAt": "0001-01-01T00:00:00Z",
"UpdatedAt": "0001-01-01T00:00:00Z",
"DeletedAt": null,
"room_type": ""
},
{
"ID": 2,
"CreatedAt": "0001-01-01T00:00:00Z",
"UpdatedAt": "0001-01-01T00:00:00Z",
"DeletedAt": null,
"room_type": ""
},
{
"ID": 3,
"CreatedAt": "0001-01-01T00:00:00Z",
"UpdatedAt": "0001-01-01T00:00:00Z",
"DeletedAt": null,
"room_type": ""
},
{
"ID": 4,
"CreatedAt": "0001-01-01T00:00:00Z",
"UpdatedAt": "0001-01-01T00:00:00Z",
"DeletedAt": null,
"room_type": ""
}
]
}
Update:- 01/20/2024
当我切换到Postgres数据库时,这个代码可以正常工作.所以我要换成Postgres,然后 checkout .