mirror of
https://github.com/wallabag/wallabag.git
synced 2025-06-27 16:36:00 +00:00
Use DATABASE_URL directly in InstallCommand
This commit is contained in:
parent
7cd46cb292
commit
bc1b42a3f7
3 changed files with 19 additions and 8 deletions
|
@ -94,7 +94,6 @@ class AppKernel extends Kernel
|
|||
|
||||
private function loadEnvVarsFromParameters(ContainerBuilder $container)
|
||||
{
|
||||
$this->setEnvVarFromParameter($container, 'DATABASE_DRIVER', 'database_driver');
|
||||
$this->setEnvVarFromParameter($container, 'DATABASE_HOST', 'database_host');
|
||||
$this->setEnvVarFromParameter($container, 'DATABASE_PORT', 'database_port');
|
||||
$this->setEnvVarFromParameter($container, 'DATABASE_NAME', 'database_name');
|
||||
|
|
|
@ -269,7 +269,7 @@ services:
|
|||
|
||||
Wallabag\Command\InstallCommand:
|
||||
arguments:
|
||||
$databaseDriver: '%env(DATABASE_DRIVER)%'
|
||||
$databaseUrl: '%env(DATABASE_URL)%'
|
||||
$defaultSettings: '%wallabag.default_internal_settings%'
|
||||
$defaultIgnoreOriginInstanceRules: '%wallabag.default_ignore_origin_instance_rules%'
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ use Doctrine\DBAL\Exception\DriverException;
|
|||
use Doctrine\DBAL\Platforms\MySQLPlatform;
|
||||
use Doctrine\DBAL\Platforms\PostgreSQLPlatform;
|
||||
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
||||
use Doctrine\DBAL\Tools\DsnParser;
|
||||
use Doctrine\Migrations\Metadata\Storage\TableMetadataStorageConfiguration;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use FOS\UserBundle\Event\UserEvent;
|
||||
|
@ -41,17 +42,17 @@ class InstallCommand extends Command
|
|||
private EventDispatcherInterface $dispatcher;
|
||||
private UserManagerInterface $userManager;
|
||||
private TableMetadataStorageConfiguration $tableMetadataStorageConfiguration;
|
||||
private string $databaseDriver;
|
||||
private string $databaseUrl;
|
||||
private array $defaultSettings;
|
||||
private array $defaultIgnoreOriginInstanceRules;
|
||||
|
||||
public function __construct(EntityManagerInterface $entityManager, EventDispatcherInterface $dispatcher, UserManagerInterface $userManager, TableMetadataStorageConfiguration $tableMetadataStorageConfiguration, string $databaseDriver, array $defaultSettings, array $defaultIgnoreOriginInstanceRules)
|
||||
public function __construct(EntityManagerInterface $entityManager, EventDispatcherInterface $dispatcher, UserManagerInterface $userManager, TableMetadataStorageConfiguration $tableMetadataStorageConfiguration, string $databaseUrl, array $defaultSettings, array $defaultIgnoreOriginInstanceRules)
|
||||
{
|
||||
$this->entityManager = $entityManager;
|
||||
$this->dispatcher = $dispatcher;
|
||||
$this->userManager = $userManager;
|
||||
$this->tableMetadataStorageConfiguration = $tableMetadataStorageConfiguration;
|
||||
$this->databaseDriver = $databaseDriver;
|
||||
$this->databaseUrl = $databaseUrl;
|
||||
$this->defaultSettings = $defaultSettings;
|
||||
$this->defaultIgnoreOriginInstanceRules = $defaultIgnoreOriginInstanceRules;
|
||||
|
||||
|
@ -103,13 +104,24 @@ class InstallCommand extends Command
|
|||
$status = '<info>OK!</info>';
|
||||
$help = '';
|
||||
|
||||
if (!\extension_loaded($this->databaseDriver)) {
|
||||
/** @see \Doctrine\DBAL\DriverManager::$driverSchemeAliases */
|
||||
$params = (new DsnParser([
|
||||
'mysql' => 'pdo_mysql',
|
||||
'mysql2' => 'pdo_mysql', // Amazon RDS, for some weird reason
|
||||
'postgres' => 'pdo_pgsql',
|
||||
'postgresql' => 'pdo_pgsql',
|
||||
'pgsql' => 'pdo_pgsql',
|
||||
'sqlite' => 'pdo_sqlite',
|
||||
'sqlite3' => 'pdo_sqlite',
|
||||
]))->parse($this->databaseUrl);
|
||||
|
||||
if (!\extension_loaded($params['driver'])) {
|
||||
$fulfilled = false;
|
||||
$status = '<error>ERROR!</error>';
|
||||
$help = 'Database driver "' . $this->databaseDriver . '" is not installed.';
|
||||
$help = 'Database driver "' . $params['driver'] . '" is not installed.';
|
||||
}
|
||||
|
||||
$rows[] = [\sprintf($label, $this->databaseDriver), $status, $help];
|
||||
$rows[] = [\sprintf($label, $params['driver']), $status, $help];
|
||||
|
||||
// testing if connection to the database can be established
|
||||
$label = '<comment>Database connection</comment>';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue