beego使用migrate错误

使用beego generate migration 后

bee generate migration [migrationfile] [-fields=""]

想通过migration生成数据库,根据beego的文档使用如下语句

bee migrate [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]
结果发现报错:

Could not run migration binary: exec:

可能是因为beego环境的问题

解决方案:

人工migrate

package main

import (
	"os"

	"github.com/astaxie/beego/migration"
	"github.com/astaxie/beego/orm"

	_ "github.com/go-sql-driver/mysql"
	_ "github.com/lib/pq"
)

func init() {
	orm.RegisterDataBase("default", "mysql", "root:@tcp(127.0.0.1:3306)/test")
}

func main() {
	task := "upgrade"
	switch task {
	case "upgrade":
		if err := migration.Upgrade(0); err != nil {
			os.Exit(2)
		}
	case "rollback":
		if err := migration.Rollback("TUser_20160627_172702"); err != nil {
			os.Exit(2)
		}
	case "reset":
		if err := migration.Reset(); err != nil {
			os.Exit(2)
		}
	case "refresh":
		if err := migration.Refresh(); err != nil {
			os.Exit(2)
		}
	}
}

根据需要的migrate模式,修改task为upgrade,rollback,rest和refresh

Rollback的时候需要传一个参数

TUser_20160627_172702
这个参数是你的migration文件中的

migration.Register("TUser_20160627_172702", m)
代表回滚这个migration

注意的是上述代码需要放到database/migrations目录下运行



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值