feat: implement dynamic database management via MySQL driver and API controllers

This commit is contained in:
Ümit Tunç
2026-04-24 12:52:01 +03:00
parent 9fe07a1985
commit 23f8eeb560
8 changed files with 164 additions and 33 deletions
@@ -109,7 +109,7 @@ class SchemaController extends Controller
{
try {
$this->initializeDriver($request);
$config = $request->only(['host', 'username', 'password', 'database', 'port']);
$config = $request->only(['host', 'username', 'password', 'database', 'port', 'table']);
$filePath = $this->databaseService->export($config);
return Response::download($filePath)->deleteFileAfterSend(true);
@@ -154,4 +154,26 @@ class SchemaController extends Controller
return Response::json(['error' => $e->getMessage()], 400);
}
}
public function tableMetadata(Request $request, $database, $table)
{
try {
$request->merge(['database' => $database]);
$this->initializeDriver($request);
return Response::json($this->databaseService->getTableMetadata($database, $table));
} catch (\Exception $e) {
return Response::json(['error' => $e->getMessage()], 400);
}
}
public function truncate(Request $request, $table)
{
try {
$this->initializeDriver($request);
$this->databaseService->truncateTable($table);
return Response::json(['message' => "Table '{$table}' truncated successfully"]);
} catch (\Exception $e) {
return Response::json(['error' => $e->getMessage()], 400);
}
}
}