Skip to content
This repository has been archived by the owner on Jul 23, 2024. It is now read-only.

Commit

Permalink
Create databases if it does not exist for services
Browse files Browse the repository at this point in the history
  • Loading branch information
iamvigneshwars committed Mar 6, 2024
1 parent 72929c7 commit 134b423
Show file tree
Hide file tree
Showing 5 changed files with 100 additions and 16 deletions.
23 changes: 20 additions & 3 deletions backend/compound_library/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@ use graphql::{root_schema_builder, RootSchema};
use graphql_endpoints::{GraphQLHandler, GraphQLSubscription, GraphiQLHandler};
use migrator::Migrator;
use opa_client::OPAClient;
use sea_orm::{ConnectOptions, Database, DatabaseConnection, DbErr, TransactionError};
use sea_orm::{
ConnectOptions, ConnectionTrait, Database, DatabaseConnection, DbErr, Statement,
TransactionError,
};
use sea_orm_migration::MigratorTrait;
use std::{
fs::File,
Expand Down Expand Up @@ -70,11 +73,25 @@ struct SchemaArgs {
async fn setup_database(
mut database_url: Url,
) -> Result<DatabaseConnection, TransactionError<DbErr>> {
let mut connection_options = ConnectOptions::new(database_url.to_string());
let mut connection = Database::connect(connection_options).await?;

if database_url.path().is_empty() {
database_url.set_path("compound_library");
}
let connection_options = ConnectOptions::new(database_url.to_string());
let connection = Database::connect(connection_options).await?;
// Creates a new database, ignored if database already exists
let _db_creation = connection
.execute(Statement::from_string(
connection.get_database_backend(),
format!(
"CREATE DATABASE \"{}\";",
database_url.path().trim_start_matches('/')
),
))
.await;
// connects to database path
connection_options = ConnectOptions::new(database_url.to_string());
connection = Database::connect(connection_options).await?;
Migrator::up(&connection, None).await?;
Ok(connection)
}
Expand Down
22 changes: 19 additions & 3 deletions backend/compound_soaking/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ use clap::Parser;
use graphql::{root_schema_builder, RootSchema};
use graphql_endpoints::{GraphQLHandler, GraphQLSubscription, GraphiQLHandler};
use opa_client::OPAClient;
use sea_orm::{ConnectOptions, Database, DatabaseConnection, DbErr, TransactionError};
use sea_orm::{
ConnectOptions, ConnectionTrait, Database, DatabaseConnection, DbErr, Statement,
TransactionError,
};
use sea_orm_migration::MigratorTrait;
use std::{
fs::File,
Expand Down Expand Up @@ -66,11 +69,24 @@ struct SchemaArgs {
async fn setup_database(
mut database_url: Url,
) -> Result<DatabaseConnection, TransactionError<DbErr>> {
let mut connection_options = ConnectOptions::new(database_url.to_string());
let mut connection = Database::connect(connection_options).await?;
if database_url.path().is_empty() {
database_url.set_path("compound_soaking");
}
let connection_options = ConnectOptions::new(database_url.to_string());
let connection = Database::connect(connection_options).await?;
// Creates a new database, ignored if database already exists
let _db_creation = connection
.execute(Statement::from_string(
connection.get_database_backend(),
format!(
"CREATE DATABASE \"{}\";",
database_url.path().trim_start_matches('/')
),
))
.await;
// connects to database path
connection_options = ConnectOptions::new(database_url.to_string());
connection = Database::connect(connection_options).await?;
migrator::Migrator::up(&connection, None).await?;
Ok(connection)
}
Expand Down
22 changes: 19 additions & 3 deletions backend/crystal_library/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ use clap::Parser;
use graphql::{root_schema_builder, RootSchema};
use graphql_endpoints::{GraphQLHandler, GraphQLSubscription, GraphiQLHandler};
use opa_client::OPAClient;
use sea_orm::{ConnectOptions, Database, DatabaseConnection, DbErr, TransactionError};
use sea_orm::{
ConnectOptions, ConnectionTrait, Database, DatabaseConnection, DbErr, Statement,
TransactionError,
};
use sea_orm_migration::MigratorTrait;
use std::{
fs::File,
Expand Down Expand Up @@ -69,11 +72,24 @@ struct SchemaArgs {
async fn setup_database(
mut database_url: Url,
) -> Result<DatabaseConnection, TransactionError<DbErr>> {
let mut connection_options = ConnectOptions::new(database_url.to_string());
let mut connection = Database::connect(connection_options).await?;
if database_url.path().is_empty() {
database_url.set_path("crystal_library");
}
let connection_options = ConnectOptions::new(database_url.to_string());
let connection = Database::connect(connection_options).await?;
// Creates a new database, ignored if database already exists
let _db_creation = connection
.execute(Statement::from_string(
connection.get_database_backend(),
format!(
"CREATE DATABASE \"{}\";",
database_url.path().trim_start_matches('/')
),
))
.await;
// connects to database path
connection_options = ConnectOptions::new(database_url.to_string());
connection = Database::connect(connection_options).await?;
migrator::Migrator::up(&connection, None).await?;
Ok(connection)
}
Expand Down
22 changes: 19 additions & 3 deletions backend/pin_packing/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ use graphql::{root_schema_builder, RootSchema};
use graphql_endpoints::{GraphQLHandler, GraphQLSubscription, GraphiQLHandler};
use migrations::Migrator;
use opa_client::OPAClient;
use sea_orm::{ConnectOptions, Database, DatabaseConnection, DbErr, TransactionError};
use sea_orm::{
ConnectOptions, ConnectionTrait, Database, DatabaseConnection, DbErr, Statement,
TransactionError,
};
use sea_orm_migration::MigratorTrait;
use std::{
fs::File,
Expand Down Expand Up @@ -41,11 +44,24 @@ fn setup_router(schema: RootSchema) -> Router {
async fn setup_database(
mut database_url: Url,
) -> Result<DatabaseConnection, TransactionError<DbErr>> {
let mut connection_options = ConnectOptions::new(database_url.to_string());
let mut connection = Database::connect(connection_options).await?;
if database_url.path().is_empty() {
database_url.set_path("pin_packing");
}
let connection_options = ConnectOptions::new(database_url.to_string());
let connection = Database::connect(connection_options).await?;
// Creates a new database, ignored if database already exists
let _db_creation = connection
.execute(Statement::from_string(
connection.get_database_backend(),
format!(
"CREATE DATABASE \"{}\";",
database_url.path().trim_start_matches('/')
),
))
.await;
// connects to database path
connection_options = ConnectOptions::new(database_url.to_string());
connection = Database::connect(connection_options).await?;
Migrator::up(&connection, None).await?;
Ok(connection)
}
Expand Down
27 changes: 23 additions & 4 deletions backend/targeting/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ pub use graphql::root_schema_builder;
use graphql::RootSchema;
use graphql_endpoints::{GraphQLHandler, GraphQLSubscription, GraphiQLHandler};
use migrations::Migrator;
use sea_orm::{ConnectOptions, Database, DatabaseConnection, DbErr, TransactionError};
use sea_orm::{
ConnectOptions, ConnectionTrait, Database, DatabaseConnection, DbErr, Statement,
TransactionError,
};
use sea_orm_migration::MigratorTrait;
use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};
use url::Url;
Expand All @@ -33,10 +36,26 @@ pub fn setup_router(schema: RootSchema) -> Router {
}

pub async fn setup_database(
database_url: Url,
mut database_url: Url,
) -> Result<DatabaseConnection, TransactionError<DbErr>> {
let connection_options = ConnectOptions::new(database_url.to_string());
let connection = Database::connect(connection_options).await?;
let mut connection_options = ConnectOptions::new(database_url.to_string());
let mut connection = Database::connect(connection_options).await?;
if database_url.path().is_empty() {
database_url.set_path("targeting");
}
// Creates a new database, ignored if database already exists
let _db_creation = connection
.execute(Statement::from_string(
connection.get_database_backend(),
format!(
"CREATE DATABASE \"{}\";",
database_url.path().trim_start_matches('/')
),
))
.await;
// connects to database path
connection_options = ConnectOptions::new(database_url.to_string());
connection = Database::connect(connection_options).await?;
Migrator::up(&connection, None).await?;
Ok(connection)
}
Expand Down

0 comments on commit 134b423

Please sign in to comment.