From 3d8c732258813480b8ffae1eacae39e3768a4316 Mon Sep 17 00:00:00 2001 From: "SPRINX0\\prochazka" Date: Wed, 9 Apr 2025 13:11:46 +0200 Subject: [PATCH 1/6] SYNC: #1092 - mysql backup arguments --- .../src/frontend/drivers.js | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/plugins/dbgate-plugin-mysql/src/frontend/drivers.js b/plugins/dbgate-plugin-mysql/src/frontend/drivers.js index 391e8b8b7..d73a13298 100644 --- a/plugins/dbgate-plugin-mysql/src/frontend/drivers.js +++ b/plugins/dbgate-plugin-mysql/src/frontend/drivers.js @@ -240,6 +240,19 @@ const mysqlDriverBase = { if (options.force) { args.push('--force'); } + if (options.lockTables) { + args.push('--lock-tables'); + } + if (options.skipLockTables) { + args.push('--skip-lock-tables'); + } + if (options.singleTransaction) { + args.push('--single-transaction'); + } + if (options.customArgs?.trim()) { + const customArgs = options.customArgs.split(/\s+/).filter(arg => arg.trim() != ''); + args.push(...customArgs); + } args.push(database); return { command, args }; }, @@ -312,6 +325,32 @@ const mysqlDriverBase = { default: true, disabledFn: values => values.noStructure, }, + { + type: 'checkbox', + label: 'Lock tables', + name: 'lockTables', + default: false, + disabledFn: values => values.skipLockTables || values.singleTransaction, + }, + { + type: 'checkbox', + label: 'Skip lock tables', + name: 'skipLockTables', + default: false, + disabledFn: values => values.lockTables || values.singleTransaction, + }, + { + type: 'checkbox', + label: 'Single transaction', + name: 'singleTransaction', + default: false, + disabledFn: values => values.lockTables || values.skipLockTables, + }, + { + type: 'text', + label: 'Custom arguments', + name: 'customArgs', + }, ]; } return null; From f0f5558f3e896eeb95c89764e7da722fea4ad0d4 Mon Sep 17 00:00:00 2001 From: "SPRINX0\\prochazka" Date: Wed, 9 Apr 2025 13:13:16 +0200 Subject: [PATCH 2/6] SYNC: pgdump custom args --- plugins/dbgate-plugin-postgres/src/frontend/drivers.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/dbgate-plugin-postgres/src/frontend/drivers.js b/plugins/dbgate-plugin-postgres/src/frontend/drivers.js index fdba28f3a..e44bf8b6f 100644 --- a/plugins/dbgate-plugin-postgres/src/frontend/drivers.js +++ b/plugins/dbgate-plugin-postgres/src/frontend/drivers.js @@ -267,6 +267,11 @@ EXECUTE FUNCTION function_name();`, name: 'noOwner', default: false, }, + { + type: 'text', + label: 'Custom arguments', + name: 'customArgs', + }, ]; } return null; @@ -304,6 +309,10 @@ EXECUTE FUNCTION function_name();`, ); } } + if (options.customArgs?.trim()) { + const customArgs = options.customArgs.split(/\s+/).filter(arg => arg.trim() != ''); + args.push(...customArgs); + } return { command, From f24717a3a368ba4b5b907f5e6daf49d404364a27 Mon Sep 17 00:00:00 2001 From: "SPRINX0\\prochazka" Date: Wed, 9 Apr 2025 13:26:00 +0200 Subject: [PATCH 3/6] SYNC: changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 35db938ff..14a4f3559 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ Builds: - linux - application for linux - win - application for Windows -## 6.3.3 - not released +## 6.3.3 - CHANGED: New administration UI, redesigned administration of users, connections and roles - ADDED: Encrypting passwords in team-premium edition - ADDED: Show scale bar on map #1090 From 2ae63d2323d0834b3cd25c1c9a1db07b32a01809 Mon Sep 17 00:00:00 2001 From: "SPRINX0\\prochazka" Date: Wed, 9 Apr 2025 13:42:24 +0200 Subject: [PATCH 4/6] SYNC: text --- packages/web/src/settings/SettingsModal.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/src/settings/SettingsModal.svelte b/packages/web/src/settings/SettingsModal.svelte index 2dba84f96..0cec20629 100644 --- a/packages/web/src/settings/SettingsModal.svelte +++ b/packages/web/src/settings/SettingsModal.svelte @@ -433,7 +433,7 @@ ORDER BY From 544b75bcd5a7cde9a36a19e317707d149c9edd45 Mon Sep 17 00:00:00 2001 From: "SPRINX0\\prochazka" Date: Wed, 9 Apr 2025 14:18:48 +0200 Subject: [PATCH 5/6] SYNC: fixed margin-right + in showing JSONL data --- packages/web/src/datagrid/CellValue.svelte | 7 ++++++- packages/web/src/datagrid/DataGridCell.svelte | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/web/src/datagrid/CellValue.svelte b/packages/web/src/datagrid/CellValue.svelte index 7b6bcb7a1..013a5ff99 100644 --- a/packages/web/src/datagrid/CellValue.svelte +++ b/packages/web/src/datagrid/CellValue.svelte @@ -7,6 +7,7 @@ export let value; export let jsonParsedValue = undefined; export let editorTypes; + export let rightMargin = false; $: stringified = stringifyCellValue( value, @@ -20,7 +21,7 @@ {#if rowData == null} (No row) {:else} - {stringified.value} + {stringified.value} {/if} diff --git a/packages/web/src/datagrid/DataGridCell.svelte b/packages/web/src/datagrid/DataGridCell.svelte index 27fd6d3ac..3ed072aeb 100644 --- a/packages/web/src/datagrid/DataGridCell.svelte +++ b/packages/web/src/datagrid/DataGridCell.svelte @@ -73,7 +73,13 @@ class:alignRight={_.isNumber(value) && !showHint} {style} > - + {#if showHint} Date: Wed, 9 Apr 2025 16:30:12 +0200 Subject: [PATCH 6/6] SYNC: archive UX --- .../src/forms/FormArchiveFolderSelect.svelte | 2 +- .../web/src/impexp/SourceTargetConfig.svelte | 21 +++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/packages/web/src/forms/FormArchiveFolderSelect.svelte b/packages/web/src/forms/FormArchiveFolderSelect.svelte index 887862e84..dde3b3514 100644 --- a/packages/web/src/forms/FormArchiveFolderSelect.svelte +++ b/packages/web/src/forms/FormArchiveFolderSelect.svelte @@ -43,7 +43,7 @@ if (e.detail == '@create') { showModal(InputTextModal, { header: 'Archive', - label: 'Name of new folder', + label: 'Name of new archive folder', onConfirm: createOption, }); } diff --git a/packages/web/src/impexp/SourceTargetConfig.svelte b/packages/web/src/impexp/SourceTargetConfig.svelte index 32a0dc896..d4e6421f4 100644 --- a/packages/web/src/impexp/SourceTargetConfig.svelte +++ b/packages/web/src/impexp/SourceTargetConfig.svelte @@ -23,6 +23,8 @@ import { findEngineDriver } from 'dbgate-tools'; import AceEditor from '../query/AceEditor.svelte'; import { _t } from '../translations'; + import { showModal } from '../modals/modalTools'; + import InputTextModal from '../modals/InputTextModal.svelte'; export let direction; export let storageTypeField; @@ -54,7 +56,7 @@ { value: 'query', label: _t('common.query', { defaultMessage: 'Query' }), directions: ['source'] }, { value: 'archive', - label: _t('common.archive', { defaultMessage: 'Archive' }), + label: _t('common.archive', { defaultMessage: 'Archive (JSONL)' }), directions: ['source', 'target'], }, ]; @@ -108,11 +110,18 @@ { - values.update(x => ({ - ...x, - [storageTypeField]: 'archive', - [archiveFolderField]: `import-${moment().format('YYYY-MM-DD-hh-mm-ss')}`, - })); + showModal(InputTextModal, { + header: 'Archive', + label: 'Name of new archive folder', + value: `import-${moment().format('YYYY-MM-DD-hh-mm-ss')}`, + onConfirm: value => { + values.update(x => ({ + ...x, + [storageTypeField]: 'archive', + [archiveFolderField]: value, + })); + }, + }); }} /> {/if}