不幸的是,ObjectBox Go的文档没有提供关于删除由ObjectBox“供电”的整个类型结构的信息。
假设我们有一个结构
//go:generate go run github.com/objectbox/objectbox-go/cmd/objectbox-gogen
type Test struct {
Id uint64
Name string
}一段时间后,我决定从项目中删除整个测试(已删除的test.go和test.obx.go)。不幸的是,go生成仍然“记得”这个幻影类,并不断将其添加到objectbox.go
model.RegisterBinding(TestBinding)如何安全地删除此结构(及其数据)?
发布于 2020-09-08 08:21:21
目前,ObjectBox代码生成器不删除实体,因为它处理部分输入信息(一次只有一个文件),因此它不知道您是否删除了一个实体,或者它将在调用生成器的下一个文件中。
我在GH:https://github.com/objectbox/objectbox-generator/issues/22上创建了一个后续问题/特性请求
如果您现在确实需要删除实体,直到将删除特性添加到生成器:当前的解决办法是手动更新objectbox-model.json,删除定义它的实体JSON代码块,并将其uid添加到retiredEntityUids列表中,以避免重用相同的UID (这会破坏一切)。此外,对于已删除的属性、索引和关系(每个属性都有其retired*Uids列表),也必须这样做。在生成器重新运行后,实体将从objectbox-model.go中移除.
我不建议这样做,因为手工编辑模型JSON文件时很容易出错,可能会导致数据丢失。如果可以的话,请等待生成器支持删除。
https://stackoverflow.com/questions/63694327
复制相似问题