summaryrefslogtreecommitdiffstats
path: root/Bugzilla/DB
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla/DB')
-rw-r--r--Bugzilla/DB/Mysql.pm12
-rw-r--r--Bugzilla/DB/Pg.pm13
2 files changed, 25 insertions, 0 deletions
diff --git a/Bugzilla/DB/Mysql.pm b/Bugzilla/DB/Mysql.pm
index b9143d7b6..06bf3d8df 100644
--- a/Bugzilla/DB/Mysql.pm
+++ b/Bugzilla/DB/Mysql.pm
@@ -287,6 +287,18 @@ sub _bz_get_initial_schema {
# Database Setup
#####################################################################
+sub bz_check_server_version {
+ my $self = shift;
+
+ my $lc = Bugzilla->localconfig;
+ if (lc(Bugzilla->localconfig->{db_name}) eq 'mysql') {
+ die "It is not safe to run Bugzilla inside a database named 'mysql'.\n"
+ . " Please pick a different value for \$db_name in localconfig.\n";
+ }
+
+ $self->SUPER::bz_check_server_version(@_);
+}
+
sub bz_setup_database {
my ($self) = @_;
diff --git a/Bugzilla/DB/Pg.pm b/Bugzilla/DB/Pg.pm
index 7802d58ef..e59a638a4 100644
--- a/Bugzilla/DB/Pg.pm
+++ b/Bugzilla/DB/Pg.pm
@@ -211,6 +211,19 @@ sub bz_explain {
# Custom Database Setup
#####################################################################
+sub bz_check_server_version {
+ my $self = shift;
+ my ($db) = @_;
+ my $server_version = $self->SUPER::bz_check_server_version(@_);
+ my ($major_version) = $server_version =~ /^(\d+)/;
+ # Pg 9 requires DBD::Pg 2.17.2 in order to properly read bytea values.
+ if ($major_version >= 9) {
+ local $db->{dbd}->{version} = '2.17.2';
+ local $db->{name} = $db->{name} . ' 9+';
+ Bugzilla::DB::_bz_check_dbd(@_);
+ }
+}
+
sub bz_setup_database {
my $self = shift;
$self->SUPER::bz_setup_database(@_);