【发布时间】:2021-09-20 12:55:12
【问题描述】:
当我使用 Knex.js 查询 Postgres 数据库布尔字段时,它以 "0" 或 "1"(作为字符串)返回结果,而不是布尔值 true 和 false。
有没有办法让 Knex/Postgres 自动将布尔字段作为布尔值返回?
编辑:我正在使用Knex 和node-postgres,
这是我的表定义:
knex.schema
.createTable('users_table', (table) => {
table.increments('id');
table.string('email').unique().notNullable();
table.string('full_name').notNullable();
table.timestamp('created_at').defaultTo(knex.fn.now()).notNullable();
table.index('email', 'email_unique', 'unique');
})
.createTable('users_credentials', (table) => {
table.increments('id');
table.string('password').notNullable();
table.boolean('is_activated').defaultTo(false).notNullable();
table.integer('user_id').unsigned().references('users_table.id').notNullable();
table.index('user_id', 'user_id_unique', 'unique');
});
【问题讨论】:
-
这个问题需要更多信息:1) 正在使用的 Postgres 驱动程序 2) Postgres 和 Knex 中的表定义。添加为问题的更新。
-
@AdrianKlaver 我已经更新了问题
-
看起来你需要深入研究这个pg-types 并可能覆盖解析器。尽管在查询中预感将布尔值转换为文本,例如
bool_val::text看看会发生什么。
标签: javascript postgresql knex.js