Fix install not connecting to DB (#9984)

This commit is contained in:
Tony Murray
2019-03-17 16:25:38 -05:00
committed by GitHub
parent af2b4055d3
commit cd1015992c
2 changed files with 20 additions and 23 deletions

View File

@@ -36,7 +36,7 @@ class Eloquent
/** @var Capsule static reference to capsule */
private static $capsule;
public static function boot($options = [])
public static function boot()
{
// boot Eloquent outside of Laravel
if (!Laravel::isBooted() && is_null(self::$capsule)) {
@@ -47,24 +47,6 @@ class Eloquent
$db_config = include($install_dir . '/config/database.php');
$settings = $db_config['connections'][$db_config['default']];
// legacy connection override
if (!empty($options)) {
$fields = [
'host' => 'db_host',
'port' => 'db_port',
'database' => 'db_name',
'username' => 'db_user',
'password' => 'db_pass',
'unix_socket' => 'db_socket',
];
foreach ($fields as $new => $old) {
if (isset($options[$old])) {
$settings[$new] = $options[$old];
}
}
}
self::$capsule = new Capsule;
self::$capsule->addConnection($settings);
self::$capsule->setEventDispatcher(new Dispatcher());

View File

@@ -52,11 +52,26 @@ function dbConnect($db_host = null, $db_user = '', $db_pass = '', $db_name = '',
}
try {
if (is_null($db_host) && empty($db_name)) {
Eloquent::boot();
} else {
Eloquent::boot(get_defined_vars());
if (!is_null($db_host) || !empty($db_name)) {
// legacy connection override
\Config::set('database.connections.setup', [
"driver" => "mysql",
"host" => $db_host,
"port" => $db_port,
"database" => $db_name,
"username" => $db_user,
"password" => $db_pass,
"unix_socket" => $db_socket,
"charset" => "utf8",
"collation" => "utf8_unicode_ci",
"prefix" => "",
"strict" => true,
"engine" => null
]);
\Config::set('database.default', 'setup');
}
Eloquent::boot();
} catch (PDOException $e) {
throw new DatabaseConnectException($e->getMessage(), $e->getCode(), $e);
}