use diesel::pg::PgConnection; use diesel::prelude::*; use diesel_migrations::{embed_migrations, EmbeddedMigrations, MigrationHarness}; use dotenv::dotenv; use std::env; pub const MIGRATIONS: EmbeddedMigrations = embed_migrations!("migrations"); pub fn establish_connection() -> PgConnection { dotenv().ok(); let database_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set"); PgConnection::establish(&database_url) .unwrap_or_else(|e| panic!("Error connecting to database {}: {}", database_url, e)) } pub fn run_migrations(connection: &mut PgConnection) { connection .run_pending_migrations(MIGRATIONS) .expect("Failed to run database migrations"); }