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目录下运行



你可能感兴趣的:(beego使用migrate错误)