feat: implement MySQL driver for database management, schema discovery, and CRUD operations
This commit is contained in:
@@ -177,6 +177,67 @@ class SchemaController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function drop(Request $request, $table)
|
||||
{
|
||||
try {
|
||||
$this->initializeDriver($request);
|
||||
$this->databaseService->dropTable($table);
|
||||
return Response::json(['message' => "Table '{$table}' dropped successfully"]);
|
||||
} catch (\Exception $e) {
|
||||
return Response::json(['error' => $e->getMessage()], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function optimize(Request $request, $table)
|
||||
{
|
||||
try {
|
||||
$this->initializeDriver($request);
|
||||
$this->databaseService->optimizeTable($table);
|
||||
return Response::json(['message' => "Table '{$table}' optimized successfully"]);
|
||||
} catch (\Exception $e) {
|
||||
return Response::json(['error' => $e->getMessage()], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function bulkAction(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'tables' => 'required|array',
|
||||
'action' => 'required|string|in:truncate,drop,optimize',
|
||||
'database' => 'required|string'
|
||||
]);
|
||||
|
||||
try {
|
||||
$this->initializeDriver($request);
|
||||
$tables = $request->tables;
|
||||
$action = $request->action;
|
||||
$results = [];
|
||||
|
||||
foreach ($tables as $table) {
|
||||
try {
|
||||
switch ($action) {
|
||||
case 'truncate':
|
||||
$this->databaseService->truncateTable($table);
|
||||
break;
|
||||
case 'drop':
|
||||
$this->databaseService->dropTable($table);
|
||||
break;
|
||||
case 'optimize':
|
||||
$this->databaseService->optimizeTable($table);
|
||||
break;
|
||||
}
|
||||
$results[$table] = 'success';
|
||||
} catch (\Exception $e) {
|
||||
$results[$table] = 'error: ' . $e->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
return Response::json(['message' => 'Bulk operation completed', 'results' => $results]);
|
||||
} catch (\Exception $e) {
|
||||
return Response::json(['error' => $e->getMessage()], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function tablesMetadata(Request $request, $database)
|
||||
{
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user