22 lines
707 B
Rust
Executable File
22 lines
707 B
Rust
Executable File
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");
|
|
}
|