You might want to import/export the PostgreSQL DB in the following situations:

  • Moving the DB from one server to another (for example, staging to production).
  • Moving from one architecture to another (HA, external DB).

Export Siemplify databases

  1. Create a backup folder where you want to export the databases to.
    mkdir backup
  2. Provide postgres user permissions to the backup folder.
    chown postgres:postgres /<backup folder path>/
  3. Login as postgres
    su - postgres
  4. Navigate to the backup folder you created. Make sure you are located on the backup path, by running pwd command.
  5. Execute the following commands by using the pg_dump command:
    pg_dump siemplify_agents_db>siemplify_agents_db.bak
    pg_dump siemplify_dashboards_db>siemplify_dashboards_db.bak
    pg_dump siemplify_entityexplorer_db>siemplify_entityexplorer_db.bak
    pg_dump siemplify_homepage_db>siemplify_homepage_db.bak
    pg_dump siemplify_integrations_db>siemplify_integrations_db.bak
    pg_dump siemplify_jobs_db>siemplify_jobs_db.bak
    pg_dump siemplify_metadata_db>siemplify_metadata_db.bak
    pg_dump siemplify_monitoring_db>siemplify_monitoring_db.bak
    pg_dump siemplify_notifications_db>siemplify_notifications_db.bak
    pg_dump siemplify_ontology_db>siemplify_ontology_db.bak
    pg_dump siemplify_orchestration_db>siemplify_orchestration_db.bak
    pg_dump siemplify_report_system_db>siemplify_report_system_db.bak
    pg_dump siemplify_search_everything_db>siemplify_search_everything_db.bak
    pg_dump siemplify_system_db>siemplify_system_db.bak
    pg_dump siemplify_command_center_db>siemplify_command_center_db.bak
    pg_dump siemplify_configuration_db>siemplify_configuration_db.bak
    pg_dump siemplify_layout_view_db>siemplify_layout_view_db.bak
    pg_dump siemplify_queues_db>siemplify_queues_db.bak
    pg_dump siemplify_simulation_db>siemplify_simulation_db.bak
    pg_dump siemplify_usecases_db>siemplify_usecases_db.bak
    
  6. Verify that all the backup files are in the current folder:
  7. Move these files into the postgres folder (in the target server) using this command:
    /var/lib/pgsql

Import Backup Files

  1. Connect to the DB via CLI as follows:
    sudo -u postgres psql
  2. Delete the existing databases (by using the DROP command):
    DROP DATABASE siemplify_agents_db;
    DROP DATABASE siemplify_dashboards_db;
    DROP DATABASE siemplify_entityexplorer_db;
    DROP DATABASE siemplify_homepage_db;
    DROP DATABASE siemplify_integrations_db;
    DROP DATABASE siemplify_jobs_db;
    DROP DATABASE siemplify_metadata_db;
    DROP DATABASE siemplify_monitoring_db;
    DROP DATABASE siemplify_notifications_db;
    DROP DATABASE siemplify_ontology_db;
    DROP DATABASE siemplify_orchestration_db;
    DROP DATABASE siemplify_report_system_db;
    DROP DATABASE siemplify_search_everything_db;
    DROP DATABASE siemplify_system_db;
    DROP DATABASE siemplify_command_center_db;
    DROP DATABASE siemplify_configuration_db;
    DROP DATABASE siemplify_layout_view_db;
    DROP DATABASE siemplify_queues_db;
    DROP DATABASE siemplify_simulation_db;
    DROP DATABASE siemplify_usecases_db;
    
  3. Create new (and empty) databases:
    CREATE DATABASE siemplify_agents_db;
    CREATE DATABASE siemplify_dashboards_db;
    CREATE DATABASE siemplify_entityexplorer_db;
    CREATE DATABASE siemplify_homepage_db;
    CREATE DATABASE siemplify_integrations_db;
    CREATE DATABASE siemplify_jobs_db;
    CREATE DATABASE siemplify_metadata_db;
    CREATE DATABASE siemplify_monitoring_db;
    CREATE DATABASE siemplify_notifications_db;
    CREATE DATABASE siemplify_ontology_db;
    CREATE DATABASE siemplify_orchestration_db;
    CREATE DATABASE siemplify_report_system_db;
    CREATE DATABASE siemplify_search_everything_db;
    CREATE DATABASE siemplify_system_db;
    CREATE DATABASE siemplify_command_center_db;
    CREATE DATABASE siemplify_configuration_db;
    CREATE DATABASE siemplify_layout_view_db;
    CREATE DATABASE siemplify_queues_db;
    CREATE DATABASE siemplify_simulation_db;
    CREATE DATABASE siemplify_usecases_db;
     
  4. Change the owner of the DB to the local user using by siemplify (default – sa)
    ALTER DATABASE siemplify_agents_db   OWNER TO sa;
    ALTER DATABASE siemplify_dashboards_db OWNER TO sa;
    ALTER DATABASE siemplify_entityexplorer_db OWNER TO sa;
    ALTER DATABASE siemplify_homepage_db OWNER TO sa;
    ALTER DATABASE siemplify_integrations_db OWNER TO sa;
    ALTER DATABASE siemplify_jobs_db OWNER TO sa;
    ALTER DATABASE siemplify_metadata_db OWNER TO sa;
    ALTER DATABASE siemplify_monitoring_db OWNER TO sa;
    ALTER DATABASE siemplify_notifications_db OWNER TO sa;
    ALTER DATABASE siemplify_ontology_db OWNER TO sa;
    ALTER DATABASE siemplify_orchestration_db OWNER TO sa;
    ALTER DATABASE siemplify_report_system_db OWNER TO sa;
    ALTER DATABASE siemplify_search_everything_db OWNER TO sa;
    ALTER DATABASE siemplify_system_db OWNER TO sa;
    ALTER DATABASE siemplify_command_center_db OWNER TO sa;
    ALTER DATABASE siemplify_configuration_db OWNER TO sa;
    ALTER DATABASE siemplify_layout_view_db OWNER TO sa;
    ALTER DATABASE siemplify_queues_db OWNER TO sa;
    ALTER DATABASE siemplify_simulation_db OWNER TO sa;
    ALTER DATABASE siemplify_usecases_db OWNER TO sa;
    
  5. Verify the databases. They should appear as in the screenshot below:
  6. Exit postgres, and change the user to postgres by using this command:
    su postgres
  7. Make sure that all the .bak files are located in the postgres folder:
    /var/lib/pgsql
  8. Run the following commands to load the .bak files into the empty databases:
    psql -U postgres siemplify_agents_db < siemplify_agents_db.bak
    psql -U postgres siemplify_dashboards_db < siemplify_dashboards_db.bak 
    psql -U postgres siemplify_entityexplorer_db < siemplify_entityexplorer_db.bak
    psql -U postgres siemplify_homepage_db < siemplify_homepage_db.bak
    psql -U postgres siemplify_integrations_db < siemplify_integrations_db.bak
    psql -U postgres siemplify_jobs_db < siemplify_jobs_db.bak
    psql -U postgres siemplify_metadata_db < siemplify_metadata_db.bak
    psql -U postgres siemplify_monitoring_db < siemplify_monitoring_db.bak
    psql -U postgres siemplify_notifications_db < siemplify_notifications_db.bak
    psql -U postgres siemplify_ontology_db < siemplify_ontology_db.bak
    psql -U postgres siemplify_orchestration_db < siemplify_orchestration_db.bak
    psql -U postgres siemplify_report_system_db < siemplify_report_system_db.bak
    psql -U postgres siemplify_search_everything_db < siemplify_search_everything_db.bak
    psql -U postgres siemplify_system_db < siemplify_system_db.bak
    psql -U postgres siemplify_command_center_db < siemplify_command_center_db.bak
    psql -U postgres siemplify_configuration_db < siemplify_configuration_db.bak
    psql -U postgres siemplify_layout_view_db < siemplify_layout_view_db.bak
    psql -U postgres siemplify_queues_db < siemplify_queues_db.bak
    psql -U postgres siemplify_simulation_db < siemplify_simulation_db.bak
    psql -U postgres siemplify_usecases_db < siemplify_usecases_db.bak
    
  9. Run the server and validate the database (cases, playbooks, users, etc.)