Große Datenbanken splitten & dumpen

Hallo,
ab und zu hatte ich bei den Projekten das Problem, dass ich große DB dumpen musste. Der Re-Import war dann immer die Herausforderung, wg maximaler Ausführungszeit, maximalen Upload etc.
So habe ich mir ein einfaches Tool im Oxid-Framework erstellt, dass mir die ausgewälten DB Tabellen in splittet und in mehrere Dateien exportiert.

Im ersten Schritt werden die in der DB gespeicherten Tabellen ausgegeben.
Anschließend wählt der User seine gewünschten Einstellungen - analog zu PMA:

  • drop / truncate
  • insert / replace
  • Struktur / Daten / Struktur und Daten
  • Split nach x Inserts

Der Controller extrahiert die Struktur der Tabellen und speichert diese ab.
Anschließend wird pro Tabelle der entsprechende partielle Dump gemacht - Limits ergeben sich aus Anzahl der Zeilen div Split.

Eine rudimentäre Prüfuung testet den Spaltentyp und escaped bei Bedarf das Feld für den Insert.

Anhang:
Controller für das application/controller/ Verzeichnis
Template für das application/views/{mein theme}/tpl/page/info/ Verzeichnis

In die application/views/{mein theme}/tpl/layoutt/base.tpl gehört dann folgender JS:

<script>
$(document).ready( function() {
	$('#skmyadmin').click(function() {
		var wert_2=$('select[name=table_names]').val().join(",");
		$('input[name=mytables]').val(wert_2);
		$('#database_table').submit();
	});
});
</script>

Gerne kann das jemand weiter ausführen und bei Github einstellen.
Es gehört sich, den ganzen dump in Ticks aufzuteilen und so evtl. einen Timeout umzugehen.

Aktuell mache ich noch das Gegenstück - einen Bulk-Import der Dateien in den Oxid Shop

Einsatz natürlich auf eigene Gefahr, ohne Garantie!

Viel Spaß damit
LG
Stephan

Hallo Stephan,

danke!
Kennst Du den MySQLDumper? Der macht doch exakt das, was Du da beschrieben hast, oder seh ich was falsch?

Gruß

oder MySQL Workbench. Kann man Backups erstellen, Datenbanken migrieren, exportiere, importiere, wiederherstellen. mit views, ohne views, wie man möchte. Und das alles über ein GUI

Hallo, klar, aber wollte das einfach im oxid-framework haben und hat Spaß gemacht das zu programmieren, ist ja nichts dabei, nur ca. 1h Aufwand. Gute Denkübung.
LG
Stephan

Stephan,
ja, das ist schon interessant und wie rufst Du es aus Oxid auf (hab ich da was übersehen ?) und unter welcher Oxid Version hast Du es entwickelt/getestet (4.7, 4.8, 4.9) ?