gpt4 book ai didi

mysql - go-testfixtures Fixtures.Load()返回校验和错误

转载 作者:行者123 更新时间:2023-12-01 22:23:03 32 4
gpt4 key购买 nike

我遵循示例代码here尝试设置带有用于单元测试的装置的测试MySQL数据库。我有以下代码。

func prepareTestDatabase() (*sql.DB, error) {
err := godotenv.Load("../.env")
if err != nil {
return nil, err
}

conn, err := sql.Open("mysql", os.Getenv("MYSQLURL_TEST"))
if err != nil {
return nil, err
}

fixtures, err := testfixtures.New(
testfixtures.Database(conn),
testfixtures.Dialect("mysql"),
testfixtures.Files("fixtures/sampledata.yml"),
)
if err != nil {
return nil, err
}

err = fixtures.Load()
return conn, err
}

但是 fixtures.Load()失败并返回错误:
sql: Scan error on column index 1, name "Checksum": converting NULL to int64 is unsupported

我使用的YAML文件如下所示:
- id: 1
varchar_col: somevarchar
decimal_col: 9999.99
int_col: 123456789
created_at: 2020-05-17 00:01:59

- id: 2
varchar_col: somevarchar
decimal_col: 9999.99
int_col: 987654321
created_at: 2020-05-17 00:01:59

因此,样本数据可能未插入数据库中?我确定数据库连接良好,并且可以从测试数据库插入和读取数据。

最佳答案

您的文件sampledata.yml应该与表具有相同的名称。例如:对于user表,它应该是user.yml文件

关于mysql - go-testfixtures Fixtures.Load()返回校验和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61839875/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com