【发布时间】:2021-04-19 11:05:18
【问题描述】:
我不确定我在这里做错了什么,但是我在迁移中添加了一个 jsonb 列并且我一直遇到错误:
我还尝试了常规的 .json 列以及 knex 描述的here。 但这似乎也不起作用。 文档中有一段说:
对于PostgreSQL,由于原生数组和json类型不兼容,当设置一个数组(或者可以是数组的值)为json或jsonb列的值时,应该使用JSON.stringify()进行转换在将值传递给查询生成器之前将其值传递给字符串,例如
我想既然我没有使用 PostgreSQl,我是否将其字符串化并不重要,但是我确实尝试过对数据进行字符串化,可惜在我的情况下无济于事。
我遇到的错误:
错误:ER_WRONG_VALUE_COUNT_ON_ROW:列数与值不匹配 在第 1 行计数
我在此示例中添加了许多列,以使其尽可能接近我的代码以帮助调试。 下面是我的代码:
exports.up = (knex) => {
return knex.schema.createTable("foo", (table) => {
table.increments("id").primary();
table.string("bar").notNullable();
table.decimal("fiz", 14, 2).notNullable().defaultTo(20);
table.decimal("buzz", 14, 2).defaultTo(0);
table.decimal("biz", 14, 2).defaultTo(0);
table.string("foobar").notNullable();
table.jsonb("error").notNullable();
});
};
我的种子数据看起来像:
{
id: 1,
bar: "example",
fiz: 1234,
buzz: 1234,
biz: 1234,
foobar: "example",
error: {
data1: "data",
data2: "data",
},
},
依赖版本:
"mysql": "^2.18.1",
"knex": "^0.21.12",
"bookshelf": "^1.2.0",
有人可能会发现我的代码有问题吗?
【问题讨论】:
标签: mysql database mysql-workbench knex.js