【发布时间】:2022-01-15 22:39:51
【问题描述】:
我使用这个命令从 postgresql 生成 shema:
diesel migration run
然后使用 cargo build 构建这个 rust 项目,显示如下错误:
280 | / table! {
281 | | rss_sub_source (id) {
282 | | id -> Int8,
283 | | sub_url -> Varchar,
... |
316 | | }
317 | | }
| |_^ the trait `SelectableExpression<rss_sub_source::table>` is not implemented for `(rss_sub_source::columns::id, rss_sub_source::columns::sub_url, rss_sub_source::columns::created_time, rss_sub_source::columns::updated_time, rss_sub_source::columns::sub_status, rss_sub_source::columns::rss_type, rss_sub_source::columns::standard_type, rss_sub_source::columns::standard_version, rss_sub_source::columns::cron, rss_sub_source::columns::trigger_count, rss_sub_source::columns::next_trigger_time, rss_sub_source::columns::sub_name, rss_sub_source::columns::last_trigger_time, rss_sub_source::columns::tags, rss_sub_source::columns::source_url, rss_sub_source::columns::sub_type, rss_sub_source::columns::intro, rss_sub_source::columns::remark, rss_sub_source::columns::title_hash, rss_sub_source::columns::failed_count, rss_sub_source::columns::lang, rss_sub_source::columns::frequency_month, rss_sub_source::columns::reputation, rss_sub_source::columns::rep_lastest_refresh_time, rss_sub_source::columns::scrapy_take_time, rss_sub_source::columns::follower, rss_sub_source::columns::censor_status, rss_sub_source::columns::etag, rss_sub_source::columns::last_modified, rss_sub_source::columns::editor_pick, rss_sub_source::columns::fav_icon_url, rss_sub_source::columns::dynamic_interval, rss_sub_source::columns::local_icon_url, rss_sub_source::columns::creator)`
|
note: required by a bound in `diesel::Table::AllColumns`
--> /Users/xiaoqiangjiang/.cargo/registry/src/mirrors.ustc.edu.cn-61ef6e0cd06fb9b8/diesel-1.4.8/src/query_source/mod.rs:62:22
为什么会这样?我应该怎么做才能解决它?这是diesel生成的关于这个表的rust shema代码:
table! {
rss_sub_source (id) {
id -> Int8,
sub_url -> Varchar,
created_time -> Int8,
updated_time -> Int8,
sub_status -> Int2,
rss_type -> Varchar,
standard_type -> Varchar,
standard_version -> Varchar,
cron -> Varchar,
trigger_count -> Int4,
next_trigger_time -> Nullable<Timestamp>,
sub_name -> Varchar,
last_trigger_time -> Nullable<Timestamptz>,
tags -> Nullable<Array<Int4>>,
source_url -> Nullable<Varchar>,
sub_type -> Nullable<Varchar>,
intro -> Nullable<Varchar>,
remark -> Nullable<Varchar>,
title_hash -> Nullable<Varchar>,
failed_count -> Int4,
lang -> Nullable<Varchar>,
frequency_month -> Nullable<Int4>,
reputation -> Nullable<Int4>,
rep_lastest_refresh_time -> Nullable<Int8>,
scrapy_take_time -> Nullable<Int4>,
follower -> Nullable<Int8>,
censor_status -> Nullable<Int4>,
etag -> Nullable<Varchar>,
last_modified -> Nullable<Varchar>,
editor_pick -> Nullable<Int4>,
fav_icon_url -> Nullable<Varchar>,
dynamic_interval -> Int4,
local_icon_url -> Nullable<Varchar>,
creator -> Int8,
}
}
我已经通过像这样配置柴油来启用大表:
diesel = { version = "1.4.7", features = ["postgres","32-column-tables"] }
但还是不行。
【问题讨论】:
-
您是否 100% 确定
Cargo.toml中的所有依赖项都有相互兼容的版本?确保您已完成此操作,然后运行 cargo update。 -
我确定,现在我只是通过配置柴油过滤器生成一些表格来解决这个问题,我想可能是因为一些大表格问题。 @Coder-256
标签: rust rust-diesel