From 63dd07a6f34baa51d81eee561ebde2a6f3da2ae1 Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Thu, 10 Oct 2024 13:24:31 -0500 Subject: [PATCH] Add feature to upload missing column values as NULL --- src/pgwui_bulk_upload/pgwui_bulk_upload.py | 3 +++ src/pgwui_bulk_upload/views/bulk_upload.py | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/pgwui_bulk_upload/pgwui_bulk_upload.py b/src/pgwui_bulk_upload/pgwui_bulk_upload.py index 183f456..bbcc7b0 100644 --- a/src/pgwui_bulk_upload/pgwui_bulk_upload.py +++ b/src/pgwui_bulk_upload/pgwui_bulk_upload.py @@ -31,6 +31,7 @@ DEFAULT_LITERAL_COLUMN_HEADINGS = 'no-never' DEFAULT_TRIM = 'choice-yes' DEFAULT_NULL = 'choice-yes' DEFAULT_FILE_FORMAT = 'csv' +DEFAULT_ADD_MISSING_COLUMNS = 'no-never' def establish_settings(config): @@ -53,6 +54,8 @@ def establish_settings(config): 'null', DEFAULT_NULL) bulk_upload_settings.setdefault( 'file_format', DEFAULT_FILE_FORMAT) + bulk_upload_settings.setdefault( + 'add_missing_columns', DEFAULT_ADD_MISSING_COLUMNS) def includeme(config): diff --git a/src/pgwui_bulk_upload/views/bulk_upload.py b/src/pgwui_bulk_upload/views/bulk_upload.py index 2075541..62fbddd 100644 --- a/src/pgwui_bulk_upload/views/bulk_upload.py +++ b/src/pgwui_bulk_upload/views/bulk_upload.py @@ -100,6 +100,7 @@ class SaveBulkLine(DataLineProcessor, ParameterExecutor): ''' super().__init__(ue, uh) self.insert_map = insert_map + self.add_missing_columns = uh.uf['add_missing_columns'] def eat(self, bulk_data): ''' @@ -114,7 +115,9 @@ class SaveBulkLine(DataLineProcessor, ParameterExecutor): try: udl = thunk() insert_stmt = self.insert_map[filepath] - match_insert_to_dataline(udl, insert_stmt, source_file=filepath) + match_insert_to_dataline( + udl, insert_stmt, self.add_missing_columns, + source_file=filepath) self.param_execute(insert_stmt.stmt, udl) except (core_ex.DataLineError, core_ex.DBError) as exp: relation = data.relation -- 2.34.1