Merge pull request #6730 from nupplaphil/dba_reconnect
DBA::(re-)connect fix for basePath
This commit is contained in:
commit
44953f045e
5 changed files with 14 additions and 13 deletions
|
@ -146,7 +146,7 @@ HELP;
|
||||||
|
|
||||||
$installer->resetChecks();
|
$installer->resetChecks();
|
||||||
|
|
||||||
if (!$installer->checkDB($a->getConfigCache(), $a->getProfiler(), $db_host, $db_user, $db_pass, $db_data)) {
|
if (!$installer->checkDB($a->getBasePath(), $a->getConfigCache(), $a->getProfiler(), $db_host, $db_user, $db_pass, $db_data)) {
|
||||||
$errorMessage = $this->extractErrors($installer->getChecks());
|
$errorMessage = $this->extractErrors($installer->getChecks());
|
||||||
throw new RuntimeException($errorMessage);
|
throw new RuntimeException($errorMessage);
|
||||||
}
|
}
|
||||||
|
|
|
@ -591,6 +591,7 @@ class Installer
|
||||||
/**
|
/**
|
||||||
* Checking the Database connection and if it is available for the current installation
|
* Checking the Database connection and if it is available for the current installation
|
||||||
*
|
*
|
||||||
|
* @param string $basePath The basepath of this call
|
||||||
* @param IConfigCache $configCache The configuration cache
|
* @param IConfigCache $configCache The configuration cache
|
||||||
* @param Profiler $profiler The profiler of this app
|
* @param Profiler $profiler The profiler of this app
|
||||||
* @param string $dbhost Hostname/IP of the Friendica Database
|
* @param string $dbhost Hostname/IP of the Friendica Database
|
||||||
|
@ -601,9 +602,9 @@ class Installer
|
||||||
* @return bool true if the check was successful, otherwise false
|
* @return bool true if the check was successful, otherwise false
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function checkDB(IConfigCache $configCache, Profiler $profiler, $dbhost, $dbuser, $dbpass, $dbdata)
|
public function checkDB($basePath, IConfigCache $configCache, Profiler $profiler, $dbhost, $dbuser, $dbpass, $dbdata)
|
||||||
{
|
{
|
||||||
if (!DBA::connect($configCache, $profiler, $dbhost, $dbuser, $dbpass, $dbdata)) {
|
if (!DBA::connect($basePath, $configCache, $profiler, $dbhost, $dbuser, $dbpass, $dbdata)) {
|
||||||
$this->addCheck(L10n::t('Could not connect to database.'), false, true, '');
|
$this->addCheck(L10n::t('Could not connect to database.'), false, true, '');
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -43,7 +43,7 @@ class DBA
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private static $basedir;
|
private static $basePath;
|
||||||
private static $server_info = '';
|
private static $server_info = '';
|
||||||
private static $connection;
|
private static $connection;
|
||||||
private static $driver;
|
private static $driver;
|
||||||
|
@ -59,14 +59,14 @@ class DBA
|
||||||
private static $db_name = '';
|
private static $db_name = '';
|
||||||
private static $db_charset = '';
|
private static $db_charset = '';
|
||||||
|
|
||||||
public static function connect($basedir, IConfigCache $configCache, Profiler $profiler, $serveraddr, $user, $pass, $db, $charset = null)
|
public static function connect($basePath, IConfigCache $configCache, Profiler $profiler, $serveraddr, $user, $pass, $db, $charset = null)
|
||||||
{
|
{
|
||||||
if (!is_null(self::$connection) && self::connected()) {
|
if (!is_null(self::$connection) && self::connected()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// We are storing these values for being able to perform a reconnect
|
// We are storing these values for being able to perform a reconnect
|
||||||
self::$basedir = $basedir;
|
self::$basePath = $basePath;
|
||||||
self::$configCache = $configCache;
|
self::$configCache = $configCache;
|
||||||
self::$profiler = $profiler;
|
self::$profiler = $profiler;
|
||||||
self::$db_serveraddr = $serveraddr;
|
self::$db_serveraddr = $serveraddr;
|
||||||
|
@ -169,7 +169,7 @@ class DBA
|
||||||
public static function reconnect() {
|
public static function reconnect() {
|
||||||
self::disconnect();
|
self::disconnect();
|
||||||
|
|
||||||
$ret = self::connect(self::$configCache, self::$profiler, self::$db_serveraddr, self::$db_user, self::$db_pass, self::$db_name, self::$db_charset);
|
$ret = self::connect(self::$basePath, self::$configCache, self::$profiler, self::$db_serveraddr, self::$db_user, self::$db_pass, self::$db_name, self::$db_charset);
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1039,7 +1039,7 @@ class DBA
|
||||||
* This process must only be started once, since the value is cached.
|
* This process must only be started once, since the value is cached.
|
||||||
*/
|
*/
|
||||||
private static function buildRelationData() {
|
private static function buildRelationData() {
|
||||||
$definition = DBStructure::definition(self::$basedir);
|
$definition = DBStructure::definition(self::$basePath);
|
||||||
|
|
||||||
foreach ($definition AS $table => $structure) {
|
foreach ($definition AS $table => $structure) {
|
||||||
foreach ($structure['fields'] AS $field => $field_struct) {
|
foreach ($structure['fields'] AS $field => $field_struct) {
|
||||||
|
|
|
@ -75,7 +75,7 @@ class Install extends BaseModule
|
||||||
$dbdata = Strings::escapeTags(trim(defaults($_POST, 'dbdata', '')));
|
$dbdata = Strings::escapeTags(trim(defaults($_POST, 'dbdata', '')));
|
||||||
|
|
||||||
// If we cannot connect to the database, return to the previous step
|
// If we cannot connect to the database, return to the previous step
|
||||||
if (!self::$installer->checkDB($a->getConfigCache(), $a->getProfiler(), $dbhost, $dbuser, $dbpass, $dbdata)) {
|
if (!self::$installer->checkDB($a->getBasePath(), $a->getConfigCache(), $a->getProfiler(), $dbhost, $dbuser, $dbpass, $dbdata)) {
|
||||||
self::$currentWizardStep = self::DATABASE_CONFIG;
|
self::$currentWizardStep = self::DATABASE_CONFIG;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ class Install extends BaseModule
|
||||||
$adminmail = Strings::escapeTags(trim(defaults($_POST, 'adminmail', '')));
|
$adminmail = Strings::escapeTags(trim(defaults($_POST, 'adminmail', '')));
|
||||||
|
|
||||||
// If we cannot connect to the database, return to the Database config wizard
|
// If we cannot connect to the database, return to the Database config wizard
|
||||||
if (!self::$installer->checkDB($a->getConfigCache(), $a->getProfiler(), $dbhost, $dbuser, $dbpass, $dbdata)) {
|
if (!self::$installer->checkDB($a->getBasePath(), $a->getConfigCache(), $a->getProfiler(), $dbhost, $dbuser, $dbpass, $dbdata)) {
|
||||||
self::$currentWizardStep = self::DATABASE_CONFIG;
|
self::$currentWizardStep = self::DATABASE_CONFIG;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,14 +40,14 @@ abstract class DatabaseTest extends MockedTest
|
||||||
$this->markTestSkipped('Please set the MYSQL_* environment variables to your test database credentials.');
|
$this->markTestSkipped('Please set the MYSQL_* environment variables to your test database credentials.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$basedir = BasePath::create(dirname(__DIR__));
|
$basePath = BasePath::create(dirname(__DIR__));
|
||||||
$configLoader = new Cache\ConfigCacheLoader($basedir);
|
$configLoader = new Cache\ConfigCacheLoader($basePath);
|
||||||
$config = Factory\ConfigFactory::createCache($configLoader);
|
$config = Factory\ConfigFactory::createCache($configLoader);
|
||||||
|
|
||||||
$profiler = \Mockery::mock(Profiler::class);
|
$profiler = \Mockery::mock(Profiler::class);
|
||||||
|
|
||||||
DBA::connect(
|
DBA::connect(
|
||||||
$basedir,
|
$basePath,
|
||||||
$config,
|
$config,
|
||||||
$profiler,
|
$profiler,
|
||||||
getenv('MYSQL_HOST'),
|
getenv('MYSQL_HOST'),
|
||||||
|
|
Loading…
Reference in a new issue