#postgresql #temporary #create #testing #directories

pgdb

通过Rust在临时目录中创建和运行Postgres数据库,释放时自动清理

5个不稳定版本

0.3.0 2024年4月9日
0.2.0 2024年4月1日
0.1.2 2021年6月15日
0.1.1 2021年6月12日
0.1.0 2021年6月12日

#643数据库接口

Download history 10/week @ 2024-05-20

每月 254 次下载
用于 pgdb_cli

MIT/Apache

20KB
397

pgdb-rs

一个小型的Rust crate,允许轻松创建和运行临时Postgres数据库,通常用于单元测试或其他类似事情

let user = "dev";
let pw = "devpw";
let db = "dev";

// Run a postgres instance on port `15432`.
let pg = pgdb::Postgres::build()
    .start()
    .expect("could not build postgres database");

// We can now create a regular user and a database.
pg.as_superuser()
  .create_user(user, pw)
  .expect("could not create normal user");

pg.as_superuser()
  .create_database(db, user)
  .expect("could not create normal user's db");

// Now we can run DDL commands, e.g. creating a table.
let client = pg.as_user(user, pw);
client
    .run_sql(db, "CREATE TABLE foo (id INT PRIMARY KEY);")
    .expect("could not run table creation command");

有关详细信息,请参阅文档


lib.rs:

运行Postgres实例。

pgdb通过构建模式支持配置和启动Postgres数据库实例,通过Drop进行关闭和清理。

示例

let user = "dev";
let pw = "devpw";
let db = "dev";

// Run a postgres instance on port `15432`.
let pg = pgdb::Postgres::build()
    .start()
    .expect("could not build postgres database");

// We can now create a regular user and a database.
pg.as_superuser()
  .create_user(user, pw)
  .expect("could not create normal user");

pg.as_superuser()
  .create_database(db, user)
  .expect("could not create normal user's db");

// Now we can run DDL commands, e.g. creating a table.
let client = pg.as_user(user, pw);
client
    .run_sql(db, "CREATE TABLE foo (id INT PRIMARY KEY);")
    .expect("could not run table creation command");

依赖关系

~4–13MB
~173K SLoC