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)
|
private function loadEnvVarsFromParameters(ContainerBuilder $container)
|
||||||
{
|
{
|
||||||
$this->setEnvVarFromParameter($container, 'DATABASE_DRIVER', 'database_driver');
|
|
||||||
$this->setEnvVarFromParameter($container, 'DATABASE_HOST', 'database_host');
|
$this->setEnvVarFromParameter($container, 'DATABASE_HOST', 'database_host');
|
||||||
$this->setEnvVarFromParameter($container, 'DATABASE_PORT', 'database_port');
|
$this->setEnvVarFromParameter($container, 'DATABASE_PORT', 'database_port');
|
||||||
$this->setEnvVarFromParameter($container, 'DATABASE_NAME', 'database_name');
|
$this->setEnvVarFromParameter($container, 'DATABASE_NAME', 'database_name');
|
||||||
|
|
|
@ -269,7 +269,7 @@ services:
|
||||||
|
|
||||||
Wallabag\Command\InstallCommand:
|
Wallabag\Command\InstallCommand:
|
||||||
arguments:
|
arguments:
|
||||||
$databaseDriver: '%env(DATABASE_DRIVER)%'
|
$databaseUrl: '%env(DATABASE_URL)%'
|
||||||
$defaultSettings: '%wallabag.default_internal_settings%'
|
$defaultSettings: '%wallabag.default_internal_settings%'
|
||||||
$defaultIgnoreOriginInstanceRules: '%wallabag.default_ignore_origin_instance_rules%'
|
$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\MySQLPlatform;
|
||||||
use Doctrine\DBAL\Platforms\PostgreSQLPlatform;
|
use Doctrine\DBAL\Platforms\PostgreSQLPlatform;
|
||||||
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
||||||
|
use Doctrine\DBAL\Tools\DsnParser;
|
||||||
use Doctrine\Migrations\Metadata\Storage\TableMetadataStorageConfiguration;
|
use Doctrine\Migrations\Metadata\Storage\TableMetadataStorageConfiguration;
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
use FOS\UserBundle\Event\UserEvent;
|
use FOS\UserBundle\Event\UserEvent;
|
||||||
|
@ -41,17 +42,17 @@ class InstallCommand extends Command
|
||||||
private EventDispatcherInterface $dispatcher;
|
private EventDispatcherInterface $dispatcher;
|
||||||
private UserManagerInterface $userManager;
|
private UserManagerInterface $userManager;
|
||||||
private TableMetadataStorageConfiguration $tableMetadataStorageConfiguration;
|
private TableMetadataStorageConfiguration $tableMetadataStorageConfiguration;
|
||||||
private string $databaseDriver;
|
private string $databaseUrl;
|
||||||
private array $defaultSettings;
|
private array $defaultSettings;
|
||||||
private array $defaultIgnoreOriginInstanceRules;
|
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->entityManager = $entityManager;
|
||||||
$this->dispatcher = $dispatcher;
|
$this->dispatcher = $dispatcher;
|
||||||
$this->userManager = $userManager;
|
$this->userManager = $userManager;
|
||||||
$this->tableMetadataStorageConfiguration = $tableMetadataStorageConfiguration;
|
$this->tableMetadataStorageConfiguration = $tableMetadataStorageConfiguration;
|
||||||
$this->databaseDriver = $databaseDriver;
|
$this->databaseUrl = $databaseUrl;
|
||||||
$this->defaultSettings = $defaultSettings;
|
$this->defaultSettings = $defaultSettings;
|
||||||
$this->defaultIgnoreOriginInstanceRules = $defaultIgnoreOriginInstanceRules;
|
$this->defaultIgnoreOriginInstanceRules = $defaultIgnoreOriginInstanceRules;
|
||||||
|
|
||||||
|
@ -103,13 +104,24 @@ class InstallCommand extends Command
|
||||||
$status = '<info>OK!</info>';
|
$status = '<info>OK!</info>';
|
||||||
$help = '';
|
$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;
|
$fulfilled = false;
|
||||||
$status = '<error>ERROR!</error>';
|
$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
|
// testing if connection to the database can be established
|
||||||
$label = '<comment>Database connection</comment>';
|
$label = '<comment>Database connection</comment>';
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue