提交 060fdab3 编写于 作者: S Serge Rider

#7444 PG restore + script execute tasks


Former-commit-id: de68125f
上级 192100f9
......@@ -25,8 +25,8 @@ import org.eclipse.ui.IWorkbench;
import org.jkiss.dbeaver.ext.postgresql.PostgreMessages;
import org.jkiss.dbeaver.ext.postgresql.model.PostgreSchema;
import org.jkiss.dbeaver.ext.postgresql.model.PostgreTableBase;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreBackupSettings;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreDatabaseBackupInfo;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreDatabaseBackupSettings;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreSQLTasks;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.DBRRunnableContext;
......@@ -45,7 +45,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
class PostgreBackupWizard extends PostgreBackupRestoreWizard<PostgreBackupSettings, PostgreDatabaseBackupInfo> implements IExportWizard {
class PostgreBackupWizard extends PostgreBackupRestoreWizard<PostgreDatabaseBackupSettings, PostgreDatabaseBackupInfo> implements IExportWizard {
private PostgreBackupWizardPageObjects objectsPage;
private PostgreBackupWizardPageSettings settingsPage;
......@@ -175,8 +175,8 @@ class PostgreBackupWizard extends PostgreBackupRestoreWizard<PostgreBackupSettin
}
@Override
protected PostgreBackupSettings createSettings() {
return new PostgreBackupSettings();
protected PostgreDatabaseBackupSettings createSettings() {
return new PostgreDatabaseBackupSettings();
}
@Override
......
......@@ -25,7 +25,7 @@ import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.ext.postgresql.PostgreMessages;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreBackupSettings;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreDatabaseBackupSettings;
import org.jkiss.dbeaver.tasks.ui.nativetool.AbstractImportExportWizard;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.dialogs.DialogUtils;
......@@ -74,7 +74,7 @@ class PostgreBackupWizardPageSettings extends PostgreWizardPageSettings<PostgreB
Group formatGroup = UIUtils.createControlGroup(composite, PostgreMessages.wizard_backup_page_setting_group_setting, 2, GridData.FILL_HORIZONTAL, 0);
formatCombo = UIUtils.createLabelCombo(formatGroup, PostgreMessages.wizard_backup_page_setting_label_format, SWT.DROP_DOWN | SWT.READ_ONLY);
formatCombo.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
for (PostgreBackupSettings.ExportFormat format : PostgreBackupSettings.ExportFormat.values()) {
for (PostgreDatabaseBackupSettings.ExportFormat format : PostgreDatabaseBackupSettings.ExportFormat.values()) {
formatCombo.add(format.getTitle());
}
formatCombo.select(wizard.getSettings().getFormat().ordinal());
......@@ -170,7 +170,7 @@ class PostgreBackupWizardPageSettings extends PostgreWizardPageSettings<PostgreB
wizard.setOutputFolder(CommonUtils.isEmpty(fileName) ? null : new File(fileName));
wizard.getSettings().setOutputFilePattern(outputFileText.getText());
wizard.getSettings().setFormat(PostgreBackupSettings.ExportFormat.values()[formatCombo.getSelectionIndex()]);
wizard.getSettings().setFormat(PostgreDatabaseBackupSettings.ExportFormat.values()[formatCombo.getSelectionIndex()]);
wizard.getSettings().setCompression(compressCombo.getText());
wizard.getSettings().setEncoding(encodingCombo.getText());
wizard.getSettings().setUseInserts(useInsertsCheck.getSelection());
......
......@@ -25,7 +25,7 @@ import org.jkiss.dbeaver.ext.postgresql.PostgreMessages;
import org.jkiss.dbeaver.ext.postgresql.model.PostgreDatabase;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreBackupRestoreSettings;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreDatabaseRestoreInfo;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreRestoreSettings;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreDatabaseRestoreSettings;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreSQLTasks;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.DBRRunnableContext;
......@@ -40,7 +40,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
class PostgreRestoreWizard extends PostgreBackupRestoreWizard<PostgreRestoreSettings, PostgreDatabaseRestoreInfo> implements IExportWizard {
class PostgreRestoreWizard extends PostgreBackupRestoreWizard<PostgreDatabaseRestoreSettings, PostgreDatabaseRestoreInfo> implements IExportWizard {
private PostgreRestoreWizardPageSettings settingsPage;
......@@ -119,7 +119,7 @@ class PostgreRestoreWizard extends PostgreBackupRestoreWizard<PostgreRestoreSett
@Override
protected List<String> getCommandLine(PostgreDatabaseRestoreInfo arg) throws IOException {
List<String> cmd = super.getCommandLine(arg);
PostgreRestoreSettings settings = getSettings();
PostgreDatabaseRestoreSettings settings = getSettings();
if (settings.getFormat() != PostgreBackupRestoreSettings.ExportFormat.PLAIN) {
cmd.add("--format=" + settings.getFormat().getId());
}
......@@ -132,8 +132,8 @@ class PostgreRestoreWizard extends PostgreBackupRestoreWizard<PostgreRestoreSett
}
@Override
protected PostgreRestoreSettings createSettings() {
return new PostgreRestoreSettings();
protected PostgreDatabaseRestoreSettings createSettings() {
return new PostgreDatabaseRestoreSettings();
}
@Override
......
......@@ -20,8 +20,8 @@ import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.ext.postgresql.PostgreMessages;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreBackupSettings;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreRestoreSettings;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreDatabaseBackupSettings;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreDatabaseRestoreSettings;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.controls.TextWithOpenFile;
import org.jkiss.utils.CommonUtils;
......@@ -56,7 +56,7 @@ class PostgreRestoreWizardPageSettings extends PostgreWizardPageSettings<Postgre
Group formatGroup = UIUtils.createControlGroup(composite, PostgreMessages.wizard_restore_page_setting_label_setting, 2, GridData.FILL_HORIZONTAL, 0);
formatCombo = UIUtils.createLabelCombo(formatGroup, PostgreMessages.wizard_restore_page_setting_label_format, SWT.DROP_DOWN | SWT.READ_ONLY);
formatCombo.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
for (PostgreBackupSettings.ExportFormat format : PostgreBackupSettings.ExportFormat.values()) {
for (PostgreDatabaseBackupSettings.ExportFormat format : PostgreDatabaseBackupSettings.ExportFormat.values()) {
formatCombo.add(format.getTitle());
}
formatCombo.select(wizard.getSettings().getFormat().ordinal());
......@@ -88,8 +88,8 @@ class PostgreRestoreWizardPageSettings extends PostgreWizardPageSettings<Postgre
@Override
public void saveState()
{
PostgreRestoreSettings settings = wizard.getSettings();
settings.setFormat(PostgreBackupSettings.ExportFormat.values()[formatCombo.getSelectionIndex()]);
PostgreDatabaseRestoreSettings settings = wizard.getSettings();
settings.setFormat(PostgreDatabaseBackupSettings.ExportFormat.values()[formatCombo.getSelectionIndex()]);
settings.setInputFile(inputFileText.getText());
settings.setCleanFirst(cleanFirstButton.getSelection());
}
......@@ -98,7 +98,7 @@ class PostgreRestoreWizardPageSettings extends PostgreWizardPageSettings<Postgre
protected void updateState() {
saveState();
inputFileText.setOpenFolder(wizard.getSettings().getFormat() == PostgreBackupSettings.ExportFormat.DIRECTORY);
inputFileText.setOpenFolder(wizard.getSettings().getFormat() == PostgreDatabaseBackupSettings.ExportFormat.DIRECTORY);
getContainer().updateButtons();
}
......
......@@ -27,7 +27,9 @@ import org.jkiss.dbeaver.ext.postgresql.model.PostgreDatabase;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreSQLTasks;
import org.jkiss.dbeaver.ext.postgresql.tasks.PostgreScriptExecuteSettings;
import org.jkiss.dbeaver.model.runtime.DBRRunnableContext;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.task.DBTTask;
import org.jkiss.dbeaver.registry.task.TaskPreferenceStore;
import org.jkiss.dbeaver.tasks.ui.nativetool.AbstractScriptExecuteWizard;
import org.jkiss.dbeaver.utils.RuntimeUtils;
import org.jkiss.utils.CommonUtils;
......@@ -38,7 +40,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
class PostgreScriptExecuteWizard extends AbstractScriptExecuteWizard<PostgreScriptExecuteSettings, PostgreDatabase, PostgreDatabase> {
class PostgreScriptExecuteWizard extends AbstractScriptExecuteWizard<PostgreScriptExecuteSettings, DBSObject, PostgreDatabase> {
private PostgreScriptExecuteWizardPageSettings mainPage;
......@@ -49,6 +51,7 @@ class PostgreScriptExecuteWizard extends AbstractScriptExecuteWizard<PostgreScri
PostgreScriptExecuteWizard(PostgreDatabase catalog)
{
super(Collections.singleton(catalog), PostgreMessages.wizard_script_title_execute_script);
getSettings().setDatabase(catalog);
}
@Override
......@@ -70,7 +73,9 @@ class PostgreScriptExecuteWizard extends AbstractScriptExecuteWizard<PostgreScri
@Override
public void saveTaskState(DBRRunnableContext runnableContext, Map<String, Object> state) {
// TODO: implement
mainPage.saveState();
getSettings().saveSettings(runnableContext, new TaskPreferenceStore(state));
}
@Override
......@@ -111,7 +116,7 @@ class PostgreScriptExecuteWizard extends AbstractScriptExecuteWizard<PostgreScri
@Override
public Collection<PostgreDatabase> getRunInfo() {
return getDatabaseObjects();
return Collections.singletonList(getSettings().getDatabase());
}
@Override
......
......@@ -74,7 +74,7 @@ public class PostgreScriptExecuteWizardPageSettings extends PostgreWizardPageSet
});
if (wizard.getInputFile() != null) {
inputFileText.setText(wizard.getInputFile().getName());
inputFileText.setText(wizard.getInputFile().getAbsolutePath());
}
Composite extraGroup = UIUtils.createComposite(composite, 2);
......@@ -93,10 +93,15 @@ public class PostgreScriptExecuteWizardPageSettings extends PostgreWizardPageSet
}
@Override
protected void updateState() {
public void saveState() {
String fileName = inputFileText.getText();
wizard.setInputFile(CommonUtils.isEmpty(fileName) ? null : new File(fileName));
}
@Override
protected void updateState() {
saveState();
getContainer().updateButtons();
}
......
......@@ -19,22 +19,22 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class PostgreDatabaseBackupHandler extends PostgreNativeToolHandler<PostgreBackupSettings, DBSObject, PostgreDatabaseBackupInfo> {
public class PostgreDatabaseBackupHandler extends PostgreNativeToolHandler<PostgreDatabaseBackupSettings, DBSObject, PostgreDatabaseBackupInfo> {
@Override
public Collection<PostgreDatabaseBackupInfo> getRunInfo(PostgreBackupSettings settings) {
public Collection<PostgreDatabaseBackupInfo> getRunInfo(PostgreDatabaseBackupSettings settings) {
return settings.getExportObjects();
}
@Override
protected PostgreBackupSettings createTaskSettings(DBRRunnableContext context, DBTTask task) {
PostgreBackupSettings settings = new PostgreBackupSettings();
protected PostgreDatabaseBackupSettings createTaskSettings(DBRRunnableContext context, DBTTask task) {
PostgreDatabaseBackupSettings settings = new PostgreDatabaseBackupSettings();
settings.loadSettings(context, new TaskPreferenceStore(task));
return settings;
}
@Override
protected boolean validateTaskParameters(DBTTask task, PostgreBackupSettings settings, Log log) {
protected boolean validateTaskParameters(DBTTask task, PostgreDatabaseBackupSettings settings, Log log) {
if (task.getType().getId().equals(PostgreSQLTasks.TASK_DATABASE_BACKUP)) {
final File dir = settings.getOutputFolder();
if (!dir.exists()) {
......@@ -68,7 +68,7 @@ public class PostgreDatabaseBackupHandler extends PostgreNativeToolHandler<Postg
}
@Override
public void fillProcessParameters(PostgreBackupSettings settings, PostgreDatabaseBackupInfo arg, List<String> cmd) throws IOException {
public void fillProcessParameters(PostgreDatabaseBackupSettings settings, PostgreDatabaseBackupInfo arg, List<String> cmd) throws IOException {
super.fillProcessParameters(settings, arg, cmd);
cmd.add("--format=" + settings.getFormat().getId());
......@@ -112,7 +112,7 @@ public class PostgreDatabaseBackupHandler extends PostgreNativeToolHandler<Postg
}
@Override
protected List<String> getCommandLine(PostgreBackupSettings settings, PostgreDatabaseBackupInfo arg) throws IOException {
protected List<String> getCommandLine(PostgreDatabaseBackupSettings settings, PostgreDatabaseBackupInfo arg) throws IOException {
List<String> cmd = new ArrayList<>();
fillProcessParameters(settings, arg, cmd);
cmd.add(arg.getDatabase().getName());
......@@ -121,7 +121,7 @@ public class PostgreDatabaseBackupHandler extends PostgreNativeToolHandler<Postg
}
@Override
protected void startProcessHandler(DBRProgressMonitor monitor, DBTTask task, PostgreBackupSettings settings, PostgreDatabaseBackupInfo arg, ProcessBuilder processBuilder, Process process, Log log) throws IOException {
protected void startProcessHandler(DBRProgressMonitor monitor, DBTTask task, PostgreDatabaseBackupSettings settings, PostgreDatabaseBackupInfo arg, ProcessBuilder processBuilder, Process process, Log log) throws IOException {
super.startProcessHandler(monitor, task, settings, arg, processBuilder, process, log);
String outFileName = GeneralUtils.replaceVariables(settings.getOutputFilePattern(), name -> {
......
......@@ -35,9 +35,9 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class PostgreBackupSettings extends PostgreBackupRestoreSettings {
public class PostgreDatabaseBackupSettings extends PostgreBackupRestoreSettings {
private static final Log log = Log.getLog(PostgreBackupSettings.class);
private static final Log log = Log.getLog(PostgreDatabaseBackupSettings.class);
private List<PostgreDatabaseBackupInfo> exportObjects = new ArrayList<>();
......
......@@ -14,22 +14,22 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class PostgreDatabaseRestoreHandler extends PostgreNativeToolHandler<PostgreRestoreSettings, DBSObject, PostgreDatabaseRestoreInfo> {
public class PostgreDatabaseRestoreHandler extends PostgreNativeToolHandler<PostgreDatabaseRestoreSettings, DBSObject, PostgreDatabaseRestoreInfo> {
@Override
public Collection<PostgreDatabaseRestoreInfo> getRunInfo(PostgreRestoreSettings settings) {
public Collection<PostgreDatabaseRestoreInfo> getRunInfo(PostgreDatabaseRestoreSettings settings) {
return Collections.singletonList(settings.getRestoreInfo());
}
@Override
protected PostgreRestoreSettings createTaskSettings(DBRRunnableContext context, DBTTask task) {
PostgreRestoreSettings settings = new PostgreRestoreSettings();
protected PostgreDatabaseRestoreSettings createTaskSettings(DBRRunnableContext context, DBTTask task) {
PostgreDatabaseRestoreSettings settings = new PostgreDatabaseRestoreSettings();
settings.loadSettings(context, new TaskPreferenceStore(task));
return settings;
}
@Override
protected boolean validateTaskParameters(DBTTask task, PostgreRestoreSettings settings, Log log) {
protected boolean validateTaskParameters(DBTTask task, PostgreDatabaseRestoreSettings settings, Log log) {
if (task.getType().getId().equals(PostgreSQLTasks.TASK_DATABASE_BACKUP)) {
final File dir = settings.getOutputFolder();
if (!dir.exists()) {
......@@ -53,7 +53,7 @@ public class PostgreDatabaseRestoreHandler extends PostgreNativeToolHandler<Post
}
@Override
public void fillProcessParameters(PostgreRestoreSettings settings, PostgreDatabaseRestoreInfo arg, List<String> cmd) throws IOException {
public void fillProcessParameters(PostgreDatabaseRestoreSettings settings, PostgreDatabaseRestoreInfo arg, List<String> cmd) throws IOException {
super.fillProcessParameters(settings, arg, cmd);
if (settings.isCleanFirst()) {
......@@ -67,7 +67,7 @@ public class PostgreDatabaseRestoreHandler extends PostgreNativeToolHandler<Post
}
@Override
protected List<String> getCommandLine(PostgreRestoreSettings settings, PostgreDatabaseRestoreInfo arg) throws IOException {
protected List<String> getCommandLine(PostgreDatabaseRestoreSettings settings, PostgreDatabaseRestoreInfo arg) throws IOException {
List<String> cmd = new ArrayList<>();
fillProcessParameters(settings, arg, cmd);
......@@ -88,7 +88,7 @@ public class PostgreDatabaseRestoreHandler extends PostgreNativeToolHandler<Post
}
@Override
protected void startProcessHandler(DBRProgressMonitor monitor, DBTTask task, PostgreRestoreSettings settings, PostgreDatabaseRestoreInfo arg, ProcessBuilder processBuilder, Process process, Log log) throws IOException {
protected void startProcessHandler(DBRProgressMonitor monitor, DBTTask task, PostgreDatabaseRestoreSettings settings, PostgreDatabaseRestoreInfo arg, ProcessBuilder processBuilder, Process process, Log log) throws IOException {
super.startProcessHandler(monitor, task, settings, arg, processBuilder, process, log);
if (settings.getFormat() != PostgreBackupRestoreSettings.ExportFormat.DIRECTORY) {
new BinaryFileTransformerJob(monitor, task, new File(settings.getInputFile()), process.getOutputStream(), log).start();
......
......@@ -27,9 +27,9 @@ import org.jkiss.utils.CommonUtils;
import java.lang.reflect.InvocationTargetException;
public class PostgreRestoreSettings extends PostgreBackupRestoreSettings {
public class PostgreDatabaseRestoreSettings extends PostgreBackupRestoreSettings {
private static final Log log = Log.getLog(PostgreRestoreSettings.class);
private static final Log log = Log.getLog(PostgreDatabaseRestoreSettings.class);
private String inputFile;
private boolean cleanFirst;
......
......@@ -29,7 +29,8 @@ public abstract class PostgreNativeToolHandler<SETTINGS extends AbstractNativeTo
@Override
public void fillProcessParameters(SETTINGS settings, PROCESS_ARG process_arg, List<String> cmd) throws IOException {
File dumpBinary = RuntimeUtils.getNativeClientBinary(settings.getClientHome(), PostgreConstants.BIN_FOLDER,
isExportWizard() ? "pg_dump" : "pg_restore"); //$NON-NLS-1$
this instanceof PostgreDatabaseBackupHandler ? "pg_dump" :
this instanceof PostgreDatabaseRestoreHandler ? "pg_restore" : "psql"); //$NON-NLS-1$
String dumpPath = dumpBinary.getAbsolutePath();
cmd.add(dumpPath);
......
package org.jkiss.dbeaver.ext.postgresql.tasks;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ext.postgresql.model.PostgreDatabase;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.DBRRunnableContext;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.task.DBTTask;
import org.jkiss.dbeaver.registry.task.TaskPreferenceStore;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class PostgreScriptExecuteHandler extends PostgreNativeToolHandler<PostgreScriptExecuteSettings, DBSObject, PostgreDatabase> {
@Override
public Collection<PostgreDatabase> getRunInfo(PostgreScriptExecuteSettings settings) {
return Collections.singletonList(settings.getDatabase());
}
@Override
protected PostgreScriptExecuteSettings createTaskSettings(DBRRunnableContext context, DBTTask task) {
PostgreScriptExecuteSettings settings = new PostgreScriptExecuteSettings();
settings.loadSettings(context, new TaskPreferenceStore(task));
return settings;
}
@Override
protected boolean needsModelRefresh() {
return true;
}
@Override
public boolean isVerbose() {
return false;
}
@Override
public void fillProcessParameters(PostgreScriptExecuteSettings settings, PostgreDatabase arg, List<String> cmd) throws IOException {
super.fillProcessParameters(settings, arg, cmd);
if (arg.getDataSource().isServerVersionAtLeast(9, 5)) {
cmd.add("--echo-errors"); //$NON-NLS-1$
}
}
@Override
protected boolean isExportWizard() {
return false;
}
@Override
protected List<String> getCommandLine(PostgreScriptExecuteSettings settings, PostgreDatabase arg) throws IOException {
List<String> cmd = new ArrayList<>();
fillProcessParameters(settings, arg, cmd);
cmd.add(arg.getName());
return cmd;
}
@Override
protected boolean isLogInputStream() {
return true;
}
@Override
protected void startProcessHandler(DBRProgressMonitor monitor, DBTTask task, PostgreScriptExecuteSettings settings, PostgreDatabase arg, ProcessBuilder processBuilder, Process process, Log log) throws IOException {
super.startProcessHandler(monitor, task, settings, arg, processBuilder, process, log);
new BinaryFileTransformerJob(monitor, task, new File(settings.getInputFile()), process.getOutputStream(), log).start();
}
}
......@@ -17,10 +17,61 @@
*/
package org.jkiss.dbeaver.ext.postgresql.tasks;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ext.postgresql.model.PostgreDatabase;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRRunnableContext;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.tasks.nativetool.AbstractScriptExecuteSettings;
import org.jkiss.utils.CommonUtils;
public class PostgreScriptExecuteSettings extends AbstractScriptExecuteSettings<PostgreDatabase> {
import java.lang.reflect.InvocationTargetException;
public class PostgreScriptExecuteSettings extends AbstractScriptExecuteSettings<DBSObject> {
private static final Log log = Log.getLog(PostgreScriptExecuteSettings.class);
private PostgreDatabase database;
public PostgreDatabase getDatabase() {
return database;
}
public void setDatabase(PostgreDatabase database) {
this.database = database;
}
@Override
public void loadSettings(DBRRunnableContext runnableContext, DBPPreferenceStore store) {
super.loadSettings(runnableContext, store);
String databaseId = store.getString("pg.script.database");
if (!CommonUtils.isEmpty(databaseId)) {
try {
runnableContext.run(true, true, monitor -> {
try {
database = (PostgreDatabase) DBUtils.findObjectById(monitor, getProject(), databaseId);
if (database == null) {
throw new DBException("Database " + databaseId + " not found");
}
} catch (Throwable e) {
throw new InvocationTargetException(e);
}
});
} catch (InvocationTargetException e) {
log.error("Error loading objects configuration", e);
} catch (InterruptedException e) {
// Ignore
}
}
}
@Override
public void saveSettings(DBRRunnableContext runnableContext, DBPPreferenceStore store) {
super.saveSettings(runnableContext, store);
store.setValue("pg.script.database", DBUtils.getObjectFullId(database));
}
}
......@@ -57,8 +57,7 @@ public abstract class AbstractScriptExecuteWizard<SETTINGS extends AbstractScrip
return new File(getSettings().getInputFile());
}
public void setInputFile(File inputFile)
{
public void setInputFile(File inputFile) {
getSettings().setInputFile(inputFile == null ? null : inputFile.getAbsolutePath());
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册