| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- use deadpool_postgres::{Config, Pool};
- use tokio_postgres::NoTls;
- use tokio_postgres_migration::Migration;
- const SCRIPTS_UP: [(&str, &str); 1] = [(
- "0001_create-users",
- include_str!("../migrations/0001_create-users_up.sql"),
- )];
- fn create_config() -> Config {
- let mut cfg = Config::new();
- if let Ok(host) = std::env::var("PG_HOST") {
- cfg.host = Some(host);
- }
- if let Ok(dbname) = std::env::var("PG_DBNAME") {
- cfg.dbname = Some(dbname);
- }
- if let Ok(user) = std::env::var("PG_USER") {
- cfg.user = Some(user);
- }
- if let Ok(password) = std::env::var("PG_PASSWORD") {
- cfg.password = Some(password);
- }
- cfg
- }
- pub fn create_pool() -> Pool {
- create_config()
- .create_pool(NoTls)
- .expect("couldn't create postgres pool")
- }
- pub async fn migrate_up(pool: &Pool) {
- let mut client = pool.get().await.expect("couldn't get postgres client");
- let migration = Migration::new("migrations".to_string());
- migration
- .up(&mut **client, &SCRIPTS_UP)
- .await
- .expect("couldn't run migrations");
- }
|