mirror of
https://github.com/friendica/friendica
synced 2024-11-18 05:03:40 +00:00
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();
|
||||
|
||||
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());
|
||||
throw new RuntimeException($errorMessage);
|
||||
}
|
||||
|
|
|
@ -591,6 +591,7 @@ class Installer
|
|||
/**
|
||||
* 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 Profiler $profiler The profiler of this app
|
||||
* @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
|
||||
* @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, '');
|
||||
|
||||
return false;
|
||||
|
|
|
@ -43,7 +43,7 @@ class DBA
|
|||
/**
|
||||
* @var string
|
||||
*/
|
||||
private static $basedir;
|
||||
private static $basePath;
|
||||
private static $server_info = '';
|
||||
private static $connection;
|
||||
private static $driver;
|
||||
|
@ -59,14 +59,14 @@ class DBA
|
|||
private static $db_name = '';
|
||||
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()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// We are storing these values for being able to perform a reconnect
|
||||
self::$basedir = $basedir;
|
||||
self::$basePath = $basePath;
|
||||
self::$configCache = $configCache;
|
||||
self::$profiler = $profiler;
|
||||
self::$db_serveraddr = $serveraddr;
|
||||
|
@ -169,7 +169,7 @@ class DBA
|
|||
public static function reconnect() {
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -1039,7 +1039,7 @@ class DBA
|
|||
* This process must only be started once, since the value is cached.
|
||||
*/
|
||||
private static function buildRelationData() {
|
||||
$definition = DBStructure::definition(self::$basedir);
|
||||
$definition = DBStructure::definition(self::$basePath);
|
||||
|
||||
foreach ($definition AS $table => $structure) {
|
||||
foreach ($structure['fields'] AS $field => $field_struct) {
|
||||
|
|
|
@ -75,7 +75,7 @@ class Install extends BaseModule
|
|||
$dbdata = Strings::escapeTags(trim(defaults($_POST, 'dbdata', '')));
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
|
@ -92,7 +92,7 @@ class Install extends BaseModule
|
|||
$adminmail = Strings::escapeTags(trim(defaults($_POST, 'adminmail', '')));
|
||||
|
||||
// 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;
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -40,14 +40,14 @@ abstract class DatabaseTest extends MockedTest
|
|||
$this->markTestSkipped('Please set the MYSQL_* environment variables to your test database credentials.');
|
||||
}
|
||||
|
||||
$basedir = BasePath::create(dirname(__DIR__));
|
||||
$configLoader = new Cache\ConfigCacheLoader($basedir);
|
||||
$basePath = BasePath::create(dirname(__DIR__));
|
||||
$configLoader = new Cache\ConfigCacheLoader($basePath);
|
||||
$config = Factory\ConfigFactory::createCache($configLoader);
|
||||
|
||||
$profiler = \Mockery::mock(Profiler::class);
|
||||
|
||||
DBA::connect(
|
||||
$basedir,
|
||||
$basePath,
|
||||
$config,
|
||||
$profiler,
|
||||
getenv('MYSQL_HOST'),
|
||||
|
|
Loading…
Reference in a new issue