Beego框架在迁移时不会创建外键

时间:2018-10-02 18:53:55

标签: go beego golang-migrate

最近,我尝试使用Beego框架创建简单的网站。一切都可以尝试创建模型。

我有两个表usersuser_types。表users的字段user_type链接到表pk的{​​{1}}。

这是我的代码定义:

user_types

但是当我使用type User struct { Id uint `orm:"pk"` FullName string UserName string `orm:"unique"` Phone string `orm:"unique"` Email string `orm:"unique"` Password string UserType *UserType `orm:"rel(fk)"` CreatedAt time.Time `orm:"auto_now_add;type(datetime)"` UpdatedAt time.Time `orm:"auto_now;type(datetime)"` } type UserType struct { Id uint `orm:"pk"` TypeName string CountUser uint `orm:"default(0)"` Users []*User `orm:"reverse(many)"` } 时,它仅创建表和索引,而不创建外键。

这是orm.RunSyncdb("default", true, true)代码迁移运行。

sql

这是图表: diagrams

我的问题是在运行drop table `user_type` DROP TABLE IF EXISTS `user_type` drop table `user` DROP TABLE IF EXISTS `user` create table `user_type` -- -------------------------------------------------- -- Table Structure for `models.UserType` -- -------------------------------------------------- CREATE TABLE IF NOT EXISTS `user_type` ( `id` integer unsigned NOT NULL PRIMARY KEY, `type_name` varchar(255) NOT NULL DEFAULT '' , `count_user` integer unsigned NOT NULL DEFAULT 0 ) ENGINE=INNODB; create table `user` -- -------------------------------------------------- -- Table Structure for `models.User` -- -------------------------------------------------- CREATE TABLE IF NOT EXISTS `user` ( `id` integer unsigned NOT NULL PRIMARY KEY, `full_name` varchar(255) NOT NULL DEFAULT '' , `user_name` varchar(255) NOT NULL DEFAULT '' UNIQUE, `phone` varchar(255) NOT NULL DEFAULT '' UNIQUE, `email` varchar(255) NOT NULL DEFAULT '' UNIQUE, `password` varchar(255) NOT NULL DEFAULT '' , `user_type_id` integer unsigned NOT NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL ) ENGINE=INNODB; CREATE INDEX `user_user_name_email` ON `user` (`user_name`, `email`); 时如何创建外键。

谢谢大家!

0 个答案:

没有答案