Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
a4ae80a4
Commit
a4ae80a4
authored
Feb 14, 2011
by
Max Kanat-Alexander
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 603127: Make checksetup.pl require DBD::Pg 2.17.2 when using Pg 9.0 or
later. r=dkl, a=mkanat
parent
a995ad3f
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
60 additions
and
20 deletions
+60
-20
Constants.pm
Bugzilla/Constants.pm
+2
-0
DB.pm
Bugzilla/DB.pm
+33
-20
Mysql.pm
Bugzilla/DB/Mysql.pm
+12
-0
Pg.pm
Bugzilla/DB/Pg.pm
+13
-0
No files found.
Bugzilla/Constants.pm
View file @
a4ae80a4
...
...
@@ -484,6 +484,8 @@ use constant DB_MODULE => {
version
=>
'4.001'
,
},
name
=>
'MySQL'
},
# Also see Bugzilla::DB::Pg::bz_check_server_version, which has special
# code to require DBD::Pg 2.17.2 for PostgreSQL 9 and above.
'pg'
=>
{
db
=>
'Bugzilla::DB::Pg'
,
db_version
=>
'8.03.0000'
,
dbd
=>
{
package
=>
'DBD-Pg'
,
...
...
Bugzilla/DB.pm
View file @
a4ae80a4
...
...
@@ -162,26 +162,41 @@ sub bz_check_requirements {
my
$lc
=
Bugzilla
->
localconfig
;
my
$db
=
DB_MODULE
->
{
lc
(
$lc
->
{
db_driver
})};
# Only certain values are allowed for $db_driver.
if
(
!
defined
$db
)
{
die
"$lc->{db_driver} is not a valid choice for \$db_driver in"
.
bz_locations
()
->
{
'localconfig'
};
}
die
(
"It is not safe to run Bugzilla inside the 'mysql' database.\n"
.
"Please pick a different value for \$db_name in localconfig."
)
if
$lc
->
{
db_name
}
eq
'mysql'
;
# Check the existence and version of the DBD that we need.
my
$dbd
=
$db
->
{
dbd
};
my
$sql_server
=
$db
->
{
name
};
my
$sql_want
=
$db
->
{
db_version
};
my
$dbd
=
$db
->
{
dbd
};
_bz_check_dbd
(
$db
,
$output
);
# We don't try to connect to the actual database if $db_check is
# disabled.
unless
(
$lc
->
{
db_check
})
{
print
"\n"
if
$output
;
return
;
}
# And now check the version of the database server itself.
my
$dbh
=
_get_no_db_connection
();
$dbh
->
bz_check_server_version
(
$db
,
$output
);
print
"\n"
if
$output
;
}
sub
_bz_check_dbd
{
my
(
$db
,
$output
)
=
@_
;
my
$dbd
=
$db
->
{
dbd
};
unless
(
have_vers
(
$dbd
,
$output
))
{
my
$sql_server
=
$db
->
{
name
};
my
$command
=
install_command
(
$dbd
);
my
$root
=
ROOT_USER
;
my
$dbd_mod
=
$dbd
->
{
module
};
my
$dbd_ver
=
$dbd
->
{
version
};
my
$version
=
$dbd_ver
?
" $dbd_ver or higher"
:
''
;
die
<<EOT;
For $sql_server, Bugzilla requires that perl's $dbd_mod $dbd_ver or later be
...
...
@@ -191,21 +206,18 @@ installed. To install this module, run the following command (as $root):
EOT
}
}
# We don't try to connect to the actual database if $db_check is
# disabled.
unless
(
$lc
->
{
db_check
})
{
print
"\n"
if
$output
;
return
;
}
# And now check the version of the database server itself.
my
$dbh
=
_get_no_db_connection
();
sub
bz_check_server_version
{
my
(
$self
,
$db
,
$output
)
=
@_
;
my
$sql_vers
=
$
dbh
->
bz_server_version
;
$
dbh
->
disconnect
;
my
$sql_vers
=
$
self
->
bz_server_version
;
$
self
->
disconnect
;
my
$sql_want
=
$db
->
{
db_version
};
my
$version_ok
=
vers_cmp
(
$sql_vers
,
$sql_want
)
>
-
1
?
1
:
0
;
my
$sql_server
=
$db
->
{
name
};
if
(
$output
)
{
Bugzilla::Install::Requirements::
_checking_for
({
package
=>
$sql_server
,
wanted
=>
$sql_want
,
...
...
@@ -224,7 +236,8 @@ newer version.
EOT
}
print
"\n"
if
$output
;
# This is used by subclasses.
return
$sql_vers
;
}
# Note that this function requires that localconfig exist and
...
...
Bugzilla/DB/Mysql.pm
View file @
a4ae80a4
...
...
@@ -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
)
=
@_
;
...
...
Bugzilla/DB/Pg.pm
View file @
a4ae80a4
...
...
@@ -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
(
@_
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment