rename table ctx menu

This commit is contained in:
Jan Prochazka
2021-09-10 20:26:45 +02:00
parent 016e96d0e6
commit a5f39da8ae
3 changed files with 66 additions and 24 deletions

View File

@@ -0,0 +1,45 @@
import { findEngineDriver, generateDbPairingId, getAlterDatabaseScript } from 'dbgate-tools';
import InputTextModal from '../modals/InputTextModal.svelte';
import { showModal } from '../modals/modalTools';
import { getExtensions } from '../stores';
import { getConnectionInfo, getDatabaseInfo } from './metadataLoaders';
import ConfirmSqlModal from '../modals/ConfirmSqlModal.svelte';
import axiosInstance from './axiosInstance';
export async function alterDatabaseDialog(conid, database, updateFunc) {
const conn = await getConnectionInfo({ conid });
const driver = findEngineDriver(conn, getExtensions());
const db = generateDbPairingId(await getDatabaseInfo({ conid, database }));
const dbUpdated = updateFunc(db);
const sql = getAlterDatabaseScript(db, dbUpdated, {}, db, driver);
showModal(ConfirmSqlModal, {
sql,
onConfirm: async () => {
const resp = await axiosInstance.request({
url: 'database-connections/run-script',
method: 'post',
params: {
conid,
database,
},
data: { sql },
});
await axiosInstance.post('database-connections/sync-model', { conid, database });
},
engine: driver.engine,
});
}
export async function renameDatabaseObjectDialog(conid, database, oldName, updateFunc) {
showModal(InputTextModal, {
value: oldName,
label: 'New name',
header: 'Rename object',
onConfirm: newName => {
alterDatabaseDialog(conid, database, db => updateFunc(db, newName));
},
});
}