From fce33f32f8c72dd408f94c3aef3ff32b0ed3dd46 Mon Sep 17 00:00:00 2001 From: Dave Lawrence Date: Wed, 4 Dec 2013 17:51:07 -0500 Subject: Bug 929321 - create a script to delete all bugs from the database, and generate two dumps (with and without bugs) r=glob --- contrib/nuke-bugs.pl | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 contrib/nuke-bugs.pl (limited to 'contrib') diff --git a/contrib/nuke-bugs.pl b/contrib/nuke-bugs.pl new file mode 100755 index 000000000..813d3f741 --- /dev/null +++ b/contrib/nuke-bugs.pl @@ -0,0 +1,69 @@ +#!/usr/bin/perl -w +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This Source Code Form is "Incompatible With Secondary Licenses", as +# defined by the Mozilla Public License, v. 2.0. + +use strict; + +use lib qw(.); + +use Bugzilla; +use Bugzilla::Constants; + +use Getopt::Long; + +# This SQL is designed to delete the bugs and other activity in a Bugzilla database +# so that one can use for development purposes or to start using it as a fresh installation. +# Other data will be retained such as products, versions, flags, profiles, etc. + +$| = 1; +my $trace = 0; + +GetOptions("trace" => \$trace) || exit; + +my $dbh = Bugzilla->dbh; + +$dbh->{TraceLevel} = 1 if $trace; + +print < to continue or to cancel - WARNING +EOF +getc(); + +Bugzilla->usage_mode(USAGE_MODE_CMDLINE); + +$dbh->bz_start_transaction(); + +print "Deleting all bug data...\n"; + +delete_from_table('bug_group_map'); +delete_from_table('bugs_activity'); +delete_from_table('cc'); +delete_from_table('dependencies'); +delete_from_table('duplicates'); +delete_from_table('flags'); +delete_from_table('keywords'); +delete_from_table('attach_data'); +delete_from_table('attachments'); +delete_from_table('bug_group_map'); +delete_from_table('bugs'); +delete_from_table('longdescs'); + +$dbh->do("ALTER TABLE bugs AUTO_INCREMENT = 1"); # MySQL specific + +$dbh->bz_commit_transaction(); + +# This has to happen outside of the transaction +$dbh->do("DELETE FROM bugs_fulltext"); + +print "All done!\n"; + +sub delete_from_table { + my $table = shift; + print "Deleting from $table..."; + $dbh->do("DELETE FROM $table"); + print "done.\n"; +} -- cgit v1.2.3-24-g4f1b