I am a new member of this community and currently working on installing ATLAS and related tools in my secure environment, which has restricted internet access. I opted for the Broadsea docker container with the Quick Start installation (default setting). However, I am facing challenges in changing the original AtlasDB (EUMONIA) to my own PostgreSQL database for the Atlas tool.
I apologize for the basic nature of this question, but I know that many members have encountered similar issues. Any guidance or assistance would be greatly appreciated.
Thank you for your assistance, @Ajit_Londhe. I appreciate your help. However, I am encountering some challenges in implementing this. Could you please clarify the purpose of the “WEBAPI_DATASOURCE_OHDSI_SCHEMA”? Currently, my database consists of a single schema named “public” containing all the tables needed. Additionally, I am experiencing a FATAL error in the WebApi log, indicating an issue with the password. I’ve already updated the password in the ./secret/webapi/WEBAPI_DATASOURCE_PASSWORD file, yet the error persists. I apologize for any beginner-level nature of these questions.
The WebApi service continues to exhibit issues. It initiates but then repeatedly starts and restarts without stabilization.
To provide you with more context and facilitate a comprehensive resolution, could you guide me on where to locate specific logs that may hold crucial information?
If not using a pre-filled WebAPI schema, change this to false
FLYWAY_BASELINE_ON_MIGRATE=“false”
WebAPI logging levels, set to other log4j levels to expose more verbose logging
WEBAPI_LOGGING_LEVEL_ROOT=“info” # for the entire application
WEBAPI_LOGGING_LEVEL_ORG_OHDSI=“info” # for any ohdsi library logging
WEBAPI_LOGGING_LEVEL_ORG_APACHE_SHIRO=“warn” # for shiro, the security authentication library
Shiro logging level, for authentication provider logging
WEBAPI_SHIRO_LOGGING_LEVEL=“warn”
Keep as-is if using Broadsea to launch the WebAPI postgres, replace if using an external postgres instance
2023-12-14 14:25:57 2023-12-14 13:25:57.451 WARN main org.springframework.context.support.AbstractApplicationContext - - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘shiroFilter’ defined in class path resource [org/ohdsi/webapi/ShiroConfiguration.class]: Unsatisfied dependency expressed through method ‘shiroFilter’ parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘flyway’ defined in class path resource [org/ohdsi/webapi/FlywayConfig.class]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.dbsupport.FlywaySqlException:
2023-12-14 14:25:57 Unable to obtain Jdbc connection from DataSource
2023-12-14 14:25:57 ------------------------------------------------
2023-12-14 14:25:57 SQL State : 08001
2023-12-14 14:25:57 Error Code : 0
2023-12-14 14:25:57 Message : Connection to localhost:5433 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
2023-12-14 14:25:57
My PG instance is on my laptop, so I guess, yeah, it’s on the same machine, but it’s not inside the Docker. You might notice that I’m a beginner in all of this.
Is there a straightforward way to use PostgreSQL via Broadsea (so the default profile) but with my OMOP database? Perhaps, could I dump my database and use it within the Docker container in a certain manner ?
Bringing that omop db into the Broadsea PG instance (named broadsea-atlasdb) might be the easiest workaround, aside from moving that omop db to another server.
Could you please explain the process for doing this, or guide me to the resources that would help me execute it? Thank you so much for your time and assistance!
Using the PG command line client (but you could use pgAdmin), you’d want to take a backup (dump file) of your omop db. Then you can connect to the Broadsea PG instance and restore it to its own schema (or own db, whichever keeps it separate from the webapi schema).
Once I have the database dump, how can I access a file stored locally on the machine from within the Docker container (the brodsea-atlasDB PG instance)? Should I make any changes in the docker-compose file for this?
Apologies for all these questions, and thank you for your assistance.
You have another option. The pg on your laptop, lets call it “pg-native” can be re-assigned another port (e.g. 5440). This way you don’t have to bring all your data into the pg in the container, lets call that “pg-docker” which should be running on the default pg port of 5432.
Then when you add a data source in the webapi tables in your pg-container, all you have to do is point it at the pg-native database. This is how I run my Broadsea installs.
You will need to add your source as an entry in the source table with source_id=2, source_key=NameofYourSource, etc, etc. fill out that row as it is fill out for EUNOMIA
Replicate the entries in source_daimon for your source but source_id=2 and just follow the pattern that exists there for EUNOMIA.