我目前正在学习Golang的网页编程,现在我继续学习数据库,Rest API和Golang测试。不能让Goose数据库迁移工作Go测试
,现在我得到Goose数据库迁移和转到测试整合的问题。
我想将Goose迁移集成到Go测试代码中,我的方案是在测试之前完成所有迁移,然后在完成测试后重置所有数据库。
我的问题是我找不到任何文档/示例代码与Goose。
我也试图执行使用exec.Command()的goose命令,但它总是返回,这是我现有的代码测试之前触发迁移了正在执行退出状态1
:
func pretest() {
var args = []string{
os.Getenv("DB_SERVER"),
"\"user=" + os.Getenv("DB_USERNAME") + " dbname=" + os.Getenv("DB_TEST_NAME") + " sslmode=disable\"",
"up",
}
exe := exec.Command("goose", args...)
exe.Dir = os.Getenv("DB_MIGRATION")
/* result, err := exe.Output()*/
//fmt.Println(string(result))
/*fmt.Println(err)*/
output := exe.Run()
fmt.Println(output)
}
$ go test -v
exit status 1
testing: warning: no tests to run
PASS
ok
我的问题是有可能从Go Code内部(这里是测试代码)触发迁移(上/下/重置)?
为什么exec.Command()回头率代码状态1但是当我执行另一个Linux命令它工作得很好(LS,PWD,MKDIR都以相同的方式工作做好)?
请勿张贴文字的图像。它们不可搜索,或者始终可读。请复制并粘贴所有文字内容。 – Flimzy
为了解决您的问题:'是否可以从Go Code内部触发迁移(上/下/重置)?'可以做任何你想做的事情。你有什么尝试?你遇到了什么问题? – Flimzy
@Flimzy就像我之前说过的那样,我需要在测试运行之前迁移所有迁移,然后在测试完成后迁移重置。 –