Add database tools: snapshots and import/export (step 4)
Snapshot create/list/restore/delete and DB import/export via native file dialogs, all routed through the streaming commandRunner from step 3. `ddev snapshot restore` has no project-name flag (unlike every other ddev command used so far) — it resolves the project from cwd, so commandRunner/execDdev now accept an optional cwd and every database command runs with cwd = project approot instead of passing the name positionally. Fixed a real bug found via live testing: the snapshot-naming UI used window.prompt(), which Electron's renderer does not support (it returns null with no dialog, silently). window.confirm() does work (verified: real native dialog, respects accept/dismiss) so the delete confirmation was left as-is. Snapshot naming now uses an inline text input instead. Verified end-to-end against the real scratch DDEV project via CDP- driven clicks: named snapshot creation, deletion, and restore (streamed output ending in "Database snapshot restoretest was restored in 7s") all confirmed working through the actual UI. import-db/export-db verified via direct CLI round-trip using the exact --file= flag syntax the app invokes (skipped UI-driving these since they open native OS file dialogs that CDP cannot dismiss).
This commit is contained in:
@@ -4,6 +4,7 @@ import { electronApp, optimizer, is } from '@electron-toolkit/utils'
|
||||
import icon from '../../resources/icon.png?asset'
|
||||
import { registerProjectsIpc } from './ipc/projects'
|
||||
import { registerTerminalIpc } from './ipc/terminal'
|
||||
import { registerDatabaseIpc } from './ipc/database'
|
||||
|
||||
function createWindow(): void {
|
||||
// Create the browser window.
|
||||
@@ -54,6 +55,7 @@ app.whenReady().then(() => {
|
||||
|
||||
registerProjectsIpc()
|
||||
registerTerminalIpc()
|
||||
registerDatabaseIpc()
|
||||
|
||||
createWindow()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user