我要将数据库从 sqlite3 自动迁移到 mysql,因为二者关键字有些细微的差别,这也是我为什么不用 dump 文件的原因。所以我打算用 xorm 工具读取 sqlite3 数据库生成映射结构体,然后用结构体在代码里同步表结构和数据到 mysql 去。
但是生成的时候居然生成出错误的结构体,我没有 NOT 这个字段的,给我生成出来了,我去掉表字段的 not null 约束后恢复正常,但是怎样保证没去掉的时候也是正常的。
type _usersOld20191023 struct {
Id string xorm:"varchar(32)"
Not string xorm:"not null NULL"
PrivateKey string xorm:"varchar(100)"
Not string xorm:"not null NULL"
PublicKey string xorm:"varchar(100)"
Not string xorm:"not null NULL"
PrivateIpId string xorm:"varchar(32)"
Not string xorm:"not null NULL"
CreateTime int64 xorm:"not null bigint"
}
type Boxes struct {
Id string xorm:"varchar(32)"
Not string xorm:"not null NULL"
PrivateKey string xorm:"varchar(100)"
Not string xorm:"not null NULL"
PublicKey string xorm:"varchar(100)"
Not string xorm:"not null NULL"
AllowIps string xorm:"varchar(200)"
Not string xorm:"not null NULL"
PrivateIpId string xorm:"varchar(100)"
Not string xorm:"not null NULL"
CreateTime int64 xorm:"not null bigint"
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.