Skip to content

Due to a technical issue, some files cannot currently be imported from SD Connect to SD Desktop using the Data Gateway app. See temporary workaround here.

Running temporary PostgreSQL database in SD Desktop

  1. Request access to the tools-for-sd-connect or upload your own PostgreSQL singularity container to SD Connect. Start a SD Desktop Virtual Machine that has data volume that is big enough for your data. Login to your SD Desktop, open Data Gateway connection to SD Connect and open a terminal session.

  2. In the terminal session, create directory /media/volume/psql and move there

    mkdir/media/volume/psql
    cd /media/volume/psql
    
  3. Import Apptainer container containing PostreSQL

    cp $HOME/Projects/SD\ connect/*/tools-for-sd-desktop/apptainer/postgres_14.2-alpine3.15.sif ./
    
  4. Create PostgreSQL environment file (pg.env) to be used.

    module load nano
    nano pg.env
    
  5. Add following settings to the file

    export TZ=Europe/Helsinki
    export POSTGRES_USER=pguser
    export POSTGRES_PASSWORD=pg123
    export POSTGRES_DB=mydb
    export POSTGRES_INITDB_ARGS="--encoding=UTF-8"
    

    Then save and exit nano.

  6. Create directories for PostgreSQL server

    mkdir pgdata
    mkdir pgrun 
    
  7. Start a screen session in your terminal session and launch database server using the container:

    screen
    apptainer run -B pgdata:/var/lib/postgresql/data -B pgrun:/var/run/postgresql -e -C --env-file pg.env postgres_14.2-alpine3.15.sif
    

    Then leave the screen session by pressing:

    Ctrl-a-d
    

    The server should now continue running in the screen session.

  8. Open a shell session into your PostgreSQL container. Remember to mount the directory where you have your data (e.g. /shared-directory)

    apptainer shell -B /shared-directory:/shared-directory postgres_14.2-alpine3.15.sif
    

    Inside container, move to your data directory and star working with your database:

    cd  /shared-directory
    psql -h localhost -p 5432 -d mydb -U pguser
    

    For example

    psql -h localhost -p 5432 -d mydb -U pguser f psql_dump_file.sql