不幸的是,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(;记得";这个幻影类,并不断将其添加到objectbox-model.go 中
model.RegisterBinding(TestBinding)
如何安全地删除此结构(及其数据(?
当前,ObjectBox代码生成器不会删除实体,因为它处理部分输入信息(一次处理一个文件(,因此它不知道您是否删除了实体,或者它将在调用生成器的下一个文件中。
我在GH上创建了一个后续问题/功能请求:https://github.com/objectbox/objectbox-generator/issues/22
如果您真的需要立即删除实体,直到将删除功能添加到生成器中:当前的解决方法是手动更新objectbox-model.json
,删除定义它的实体JSON代码块,并将其uid
添加到retiredEntityUids
列表中,以避免重复使用相同的UID(这会破坏一切(。此外,对于已删除的属性、索引和关系(每个都有其retired*Uids
列表(,也必须执行同样的操作。生成器重新运行后,实体将从objectbox-model.go
中删除。
我不建议这样做,因为手动编辑模型JSON文件时很容易出错,可能会导致数据丢失如果可以,请等待生成器支持删除。