pub async fn connect(database_url: &str) -> Result<PgPool, Error>
Connects to the database, creating it if needed, and applies migrations.