Vždy jsou jiné možnosti :).
V mém případě použití výpisu nepřicházelo v úvahu, protože máme také velmi rozsáhlou databázi (1,2 GB, když se stáhne na to nejpodstatnější,>250 GB naživo). Místo toho mám spoustu souborů .sql, které odstraňují jakékoli záznamy které byly vloženy specifickým testem.
Mám třídu DbHelper, která má tuto funkci pro spouštění dotazů:
public function executeOnDatabase($path_to_sql_file)
{
$sql = file_get_contents($path_to_sql_file);
$dbh = $this->getModule('Db')->dbh;
$this->debugSection('Query', $sql);
$sth = $dbh->prepare($sql);
return $sth->execute();
}
Funguje jako kouzlo a už žádné režijní spouštění testů.
Aktualizace:
Pokud se zabýváte uživateli a jejich souvisejícími daty, je obvykle docela snadné zaměřit se na všechny záznamy, které potřebujete odstranit. Uživatelské jméno a e-mail jsou s největší pravděpodobností jedinečné a můžete je použít k získání id (automatického zvýšení primárního klíče) uživatele. Toto id se pravděpodobně používá v souvisejících tabulkách. Například takto:
SET @user_id = (SELECT `id` FROM `users` WHERE `username` = 'rgsfdg');
SET @email = '[email protected]';
DELETE FROM `mail_queue` WHERE `send_to` = @email;
DELETE FROM `user_settings` WHERE `user_id` = @user_id;
DELETE FROM `users` WHERE `id` = @user_id;