This is an automated email from the ASF dual-hosted git repository. hugh pushed a commit to branch hugh/fix-db-conn-bugs in repository https://gitbox.apache.org/repos/asf/superset.git
commit e98fa59bf5624c99c5773bce071c496610b13e9e Author: hughhhh <hughmi...@gmail.com> AuthorDate: Tue Jun 29 11:45:04 2021 -0700 fix sqlalchemy onCreate --- .../CRUD/data/database/DatabaseModal/index.tsx | 34 +++++++++------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx index 85ce5a5..909cf0a 100644 --- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx +++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx @@ -353,6 +353,10 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({ addDangerToast, ); + const isDynamic = (engine: string | undefined) => + availableDbs?.databases.filter( + (DB: DatabaseObject) => DB.backend === engine || DB.engine === engine, + )[0].parameters !== undefined; const showDBError = validationErrors || dbErrors; const isEmpty = (data?: Object | null) => data && Object.keys(data).length === 0; @@ -398,13 +402,13 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({ // Clone DB object const dbToUpdate = JSON.parse(JSON.stringify(update)); - // Validate DB before saving - await getValidation(dbToUpdate, true); - if (validationErrors && !isEmpty(validationErrors)) { - return; - } - if (dbToUpdate.configuration_method === CONFIGURATION_METHOD.DYNAMIC_FORM) { + // Validate DB before saving + await getValidation(dbToUpdate, true); + if (validationErrors && !isEmpty(validationErrors)) { + return; + } + if (dbToUpdate?.parameters?.query) { // convert query params into dictionary dbToUpdate.parameters.query = JSON.parse( @@ -462,15 +466,10 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({ // convert extra_json to back to string dbToUpdate.extra = JSON.stringify({ ...dbToUpdate.extra_json, - metadata_params: JSON.parse( - dbToUpdate?.extra_json?.metadata_params as string, - ), - engine_params: JSON.parse( - dbToUpdate?.extra_json?.engine_params as string, - ), - schemas_allowed_for_csv_upload: JSON.parse( - dbToUpdate?.extra_json?.schemas_allowed_for_csv_upload as string, - ), + metadata_params: dbToUpdate?.extra_json?.metadata_params as string, + engine_params: dbToUpdate?.extra_json?.engine_params as string, + schemas_allowed_for_csv_upload: dbToUpdate?.extra_json + ?.schemas_allowed_for_csv_upload as string, }); } setLoading(true); @@ -804,11 +803,6 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({ ); }; - const isDynamic = (engine: string | undefined) => - availableDbs?.databases.filter( - (DB: DatabaseObject) => DB.backend === engine || DB.engine === engine, - )[0].parameters !== undefined; - return useTabLayout ? ( <Modal css={(theme: SupersetTheme) => [