Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,11 @@

import de.symeda.sormas.api.feature.FeatureConfigurationDto;
import de.symeda.sormas.api.importexport.DatabaseTable;
import de.symeda.sormas.api.therapy.Drug;
import de.symeda.sormas.backend.action.Action;
import de.symeda.sormas.backend.activityascase.ActivityAsCase;
import de.symeda.sormas.backend.adverseeventsfollowingimmunization.entity.AdverseEvents;
import de.symeda.sormas.backend.adverseeventsfollowingimmunization.entity.Aefi;
import de.symeda.sormas.backend.adverseeventsfollowingimmunization.entity.AefiInvestigation;
import de.symeda.sormas.backend.campaign.Campaign;
import de.symeda.sormas.backend.campaign.data.CampaignFormData;
import de.symeda.sormas.backend.campaign.diagram.CampaignDiagramDefinition;
Expand Down Expand Up @@ -119,15 +121,16 @@

/**
* Exporting data directly from the PostgreSQL database with COPY commands as .csv files.
*
*
* @author Stefan Kock
*/
@Stateless
@LocalBean
public class DatabaseExportService {

private static final String COPY_SINGLE_TABLE = "COPY (SELECT * FROM %s) TO STDOUT WITH (FORMAT CSV, DELIMITER '%s', HEADER)";
public static final String COUNT_TABLE_COLUMNS = "SELECT COUNT(column_name) FROM information_schema.columns WHERE table_name=:tableName";
public static final String COUNT_TABLE_COLUMNS =
"SELECT COUNT(column_name) FROM information_schema.columns WHERE table_name=CAST(:tableName AS text)";

static final Map<DatabaseTable, String> EXPORT_CONFIGS = new LinkedHashMap<>();

Expand Down Expand Up @@ -159,6 +162,9 @@ public class DatabaseExportService {
EXPORT_CONFIGS.put(DatabaseTable.TRAVEL_ENTRIES, TravelEntry.TABLE_NAME);
EXPORT_CONFIGS.put(DatabaseTable.IMMUNIZATIONS, Immunization.TABLE_NAME);
EXPORT_CONFIGS.put(DatabaseTable.VACCINATIONS, Vaccination.TABLE_NAME);
EXPORT_CONFIGS.put(DatabaseTable.ADVERSE_EVENTS_FOLLOWING_IMMUNIZATIONS, Aefi.TABLE_NAME);
EXPORT_CONFIGS.put(DatabaseTable.ADVERSE_EVENTS_FOLLOWING_IMMUNIZATION_INVESTIGATIONS, AefiInvestigation.TABLE_NAME);
EXPORT_CONFIGS.put(DatabaseTable.ADVERSE_EVENTS, AdverseEvents.TABLE_NAME);
EXPORT_CONFIGS.put(DatabaseTable.SAMPLES, Sample.TABLE_NAME);
EXPORT_CONFIGS.put(DatabaseTable.PATHOGEN_TESTS, PathogenTest.TABLE_NAME);
EXPORT_CONFIGS.put(DatabaseTable.ADDITIONAL_TESTS, AdditionalTest.TABLE_NAME);
Expand Down Expand Up @@ -280,7 +286,7 @@ private void addDataRows(DatabaseTable databaseTable, String tableName, Writer w

/**
* Run an export command and write the result directly into a Writer
*
*
* @param writer
* @param sql
* Actual native sql command to copy data to CSV.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import com.tngtech.archunit.core.importer.ClassFileImporter;

import de.symeda.sormas.api.importexport.DatabaseTable;
import de.symeda.sormas.backend.adverseeventsfollowingimmunization.entity.AdverseEvents;
import de.symeda.sormas.backend.adverseeventsfollowingimmunization.entity.Aefi;
import de.symeda.sormas.backend.adverseeventsfollowingimmunization.entity.AefiInvestigation;
import de.symeda.sormas.backend.docgeneration.DocumentTemplate;
Expand Down Expand Up @@ -75,9 +74,6 @@ public void testGetConfigFullyDefined() {
Environment.class,
EnvironmentSample.class,
SelfReport.class,
Aefi.class,
AdverseEvents.class,
AefiInvestigation.class,
DocumentTemplate.class,
Survey.class,
SurveyToken.class,
Expand Down
Loading