Rust diesel.rs和rocket.rs:don';我不明白为什么它需要一个数据库表

Rust diesel.rs和rocket.rs:don';我不明白为什么它需要一个数据库表,rust,rust-diesel,rust-rocket,Rust,Rust Diesel,Rust Rocket,我是个生锈的新手,我遇到了一个无法解决的问题 我的Cargo.toml如下所示: [dependencies] rocket = "0.4.6" rocket_codegen = "0.4.6" serde = "1.0" serde_derive = "1.0" serde_json = "1.0" [dependencies.diesel] version = "1.0.0&quo

我是个生锈的新手,我遇到了一个无法解决的问题

我的
Cargo.toml
如下所示:

[dependencies]
rocket = "0.4.6"
rocket_codegen = "0.4.6"
serde = "1.0"
serde_derive = "1.0"
serde_json = "1.0"

[dependencies.diesel]
version = "1.0.0"
default-features = false
features = ["sqlite"]

[dependencies.rocket_contrib]
version = "0.4.6"
default-features = false
features = ["diesel_sqlite_pool"]

[global.databases.urls_db]
url = "urls.sqlite"
我在
main.rs上有这样的连接:

使用rocket\u contrib::databases::diesel;
#[数据库(“URL_db”)]
结构UrlsDbConn(diesel::SqliteConnection);
根据
模式,我仅有一个名为
url
的表。rs

表格!{
URL(id){
id->文本,
uri->Text,
}
}
但当我尝试
货物运行时
我得到:

错误:数据库配置失败:“url\u db”
=>错误:找不到此配置的名为“databases”的表
知道为什么吗

我只有一个
databases
(复数)字符串,它位于
Cargo.toml
global.databases.url\u db
)上,这就是rocket.rs指示设置它的方式


编辑:固定排版; EDIT2:数据库本身似乎很好:

main: /Users/carlos/Developer/caarlos0/beckerly/beckerly/urls.sqlite
sqlite> .tables
__diesel_schema_migrations  urls
sqlite> select * from urls;
sqlite> insert into urls(id, uri) values ('g', 'https://google.com');
sqlite> select * from urls;
g|https://google.com
sqlite>

数据库配置应位于
Rocket.toml
文件中:

[global.databases]
urls_db = { url = "urls.sqlite" }
文件明确指出:

然后,在Rocket.toml或等效的via环境变量中,在databases表中配置数据库的URL:


您是否检查了Sqlite中是否存在数据库名my_db?这可能是Sqlite所需要的吗?我认为db应该很好,它运行迁移很好(
create table
)…我认为错误是指“table”,如TOML配置的一节所述。此外,
my_db
字符串来自哪里?这里的名称是否存在差异:
urls\u db
my\u db
?我对Rocket不太了解,但您不应该使用
Rocket.toml
而不是
Cargo.toml
来配置数据库吗?