diff options
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/Install.pm | 18 | ||||
-rw-r--r-- | Bugzilla/Install/DB.pm | 8 |
2 files changed, 22 insertions, 4 deletions
diff --git a/Bugzilla/Install.pm b/Bugzilla/Install.pm index 65e19412c..c469aa857 100644 --- a/Bugzilla/Install.pm +++ b/Bugzilla/Install.pm @@ -217,15 +217,20 @@ sub update_system_groups { } -# This function should be called only after creating the admin user. -sub create_default_product { +sub create_default_classification { my $dbh = Bugzilla->dbh; + # Make the default Classification if it doesn't already exist. if (!$dbh->selectrow_array('SELECT 1 FROM classifications')) { - print get_text('install_default_classification', + print get_text('install_default_classification', { name => DEFAULT_CLASSIFICATION->{name} }) . "\n"; Bugzilla::Classification->create(DEFAULT_CLASSIFICATION); } +} + +# This function should be called only after creating the admin user. +sub create_default_product { + my $dbh = Bugzilla->dbh; # And same for the default product/component. if (!$dbh->selectrow_array('SELECT 1 FROM products')) { @@ -426,9 +431,14 @@ Params: none Returns: nothing. +=item C<create_default_classification> + +Creates the default "Unclassified" L<Classification|Bugzilla::Classification> +if it doesn't already exist + =item C<create_default_product()> -Description: Creates the default product and classification if +Description: Creates the default product and component if they don't exist. Params: none diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm index 0c9181655..53f800b82 100644 --- a/Bugzilla/Install/DB.pm +++ b/Bugzilla/Install/DB.pm @@ -24,6 +24,7 @@ use strict; use Bugzilla::Constants; use Bugzilla::Hook; +use Bugzilla::Install (); use Bugzilla::Install::Util qw(indicate_progress install_string); use Bugzilla::Util; use Bugzilla::Series; @@ -578,6 +579,13 @@ sub update_table_definitions { Bugzilla::Hook::process('install-update_db'); + # We do this here because otherwise the foreign key from + # products.classification_id to classifications.id will fail + # (because products.classification_id defaults to "1", so on upgraded + # installations it's already been set before the first Classification + # exists). + Bugzilla::Install::create_default_classification(); + $dbh->bz_setup_foreign_keys(); } |