Ich habe eine MySQL-Datenbank mit InnoDB-Tabellen, von denen viele Fremdschlüssel haben.
Ich wollte ein Skript schreiben, um die Tabellen mit Testdaten (10-20k Zeilen oder mehr) zu füllen, aber ich dachte, ich sollte fragen, ob es schon etwas gibt, das Testdaten basierend auf den Feldtypen generieren kann relationale Integrität zur gleichen Zeit?
Ich habe gesehen und habe das Skript bei generatedata.com heruntergeladen, aber soweit ich sehen kann, ist es clever, aber es liest nicht die Tabellen innerhalb Ihrer Datenbank und generiert Daten basierend auf dem, was es findet - Sie müssen es tun alles manuell.
Dies ist so einfach wie:
%Vor%füllt 1000 zufällige Zeilen und füllt Datensätze nach Ihren Bedürfnissen.
EDIT: Wie von Mark Byers darauf hingewiesen, ist das Red-Gate-Tool nur SQL Server.
Red-Gate hat seinen SQL Data Generator , der Features "Fremdschlüssel Unterstützung für die Erzeugung konsistenter Daten über mehrere Tabellen", aber es ist nicht billig.
Es gibt ein Produkt von Datanamic namens DB Data Generator .
Ich habe keines dieser Produkte benutzt, aber ich habe andere Werkzeuge von beiden Firmen benutzt und fand sie sehr gut.
Ich verwende ein separates Verbindungsskript. Auf diese Weise kann ich eine Testdatenbank erstellen (ein Duplikat der realen Datenbank). Ich füge meine Testdaten dort hinzu.
Dann ist es eine Zeile im Verbindungsskript, um die Test-DB auszuwählen, und wenn ich fertig bin, eine Zeile, um zurück zur Live-Datenbank zu wechseln.
Es ist großartig zum Spielen, Gestalten, Testen usw.
Hier ist ein Beispiel:
Dateiname: includes / connection.php
%Vor%Um die Test-Datenbank zu betrachten, ändere ich die letzte Zeile zu:
%Vor%Dann füge ich diese Verbindungsdatei in jedes PHP-Skript ein.
Hoffe, das hilft.