mirror of
https://github.com/shlinkio/shlink.git
synced 2025-01-11 08:32:02 -06:00
Merge pull request #1538 from acelaya-forks/feature/doctrine-cli
Feature/doctrine cli
This commit is contained in:
commit
19a9d815eb
@ -34,6 +34,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com), and this
|
|||||||
### Changed
|
### Changed
|
||||||
* [#1339](https://github.com/shlinkio/shlink/issues/1339) Added new test suite for CLI E2E tests.
|
* [#1339](https://github.com/shlinkio/shlink/issues/1339) Added new test suite for CLI E2E tests.
|
||||||
* [#1503](https://github.com/shlinkio/shlink/issues/1503) Drastically improved build time in GitHub Actions, by optimizing parallelization, adding php extensions cache and running mutation tests only for changed files.
|
* [#1503](https://github.com/shlinkio/shlink/issues/1503) Drastically improved build time in GitHub Actions, by optimizing parallelization, adding php extensions cache and running mutation tests only for changed files.
|
||||||
|
* [#1525](https://github.com/shlinkio/shlink/issues/1525) Migrated to custom doctrine CLI entry point.
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
* *Nothing*
|
* *Nothing*
|
||||||
|
12
bin/doctrine
Executable file
12
bin/doctrine
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use Doctrine\ORM\EntityManager;
|
||||||
|
use Doctrine\ORM\Tools\Console\ConsoleRunner;
|
||||||
|
use Doctrine\ORM\Tools\Console\EntityManagerProvider\SingleManagerProvider;
|
||||||
|
|
||||||
|
/** @var EntityManager $app */
|
||||||
|
$em = require __DIR__ . '/../config/entity-manager.php';
|
||||||
|
ConsoleRunner::run(new SingleManagerProvider($em));
|
@ -71,7 +71,7 @@
|
|||||||
"phpunit/phpunit": "^9.5",
|
"phpunit/phpunit": "^9.5",
|
||||||
"roave/security-advisories": "dev-master",
|
"roave/security-advisories": "dev-master",
|
||||||
"shlinkio/php-coding-standard": "~2.3.0",
|
"shlinkio/php-coding-standard": "~2.3.0",
|
||||||
"shlinkio/shlink-test-utils": "^3.2",
|
"shlinkio/shlink-test-utils": "dev-main#404fdf6 as 3.3",
|
||||||
"symfony/var-dumper": "^6.1",
|
"symfony/var-dumper": "^6.1",
|
||||||
"veewee/composer-run-parallel": "^1.1"
|
"veewee/composer-run-parallel": "^1.1"
|
||||||
},
|
},
|
||||||
|
@ -73,6 +73,12 @@ return [
|
|||||||
InstallationCommand::DB_MIGRATE->value => [
|
InstallationCommand::DB_MIGRATE->value => [
|
||||||
'command' => 'bin/cli ' . Command\Db\MigrateDatabaseCommand::NAME,
|
'command' => 'bin/cli ' . Command\Db\MigrateDatabaseCommand::NAME,
|
||||||
],
|
],
|
||||||
|
InstallationCommand::ORM_PROXIES->value => [
|
||||||
|
'command' => 'bin/doctrine orm:generate-proxies',
|
||||||
|
],
|
||||||
|
InstallationCommand::ORM_CLEAR_CACHE->value => [
|
||||||
|
'command' => 'bin/doctrine orm:clear-cache:metadata',
|
||||||
|
],
|
||||||
InstallationCommand::GEOLITE_DOWNLOAD_DB->value => [
|
InstallationCommand::GEOLITE_DOWNLOAD_DB->value => [
|
||||||
'command' => 'bin/cli ' . Command\Visit\DownloadGeoLiteDbCommand::NAME,
|
'command' => 'bin/cli ' . Command\Visit\DownloadGeoLiteDbCommand::NAME,
|
||||||
],
|
],
|
||||||
|
@ -28,6 +28,11 @@ register_shutdown_function(function () use ($httpClient): void {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
$testHelper->createTestDb(['bin/cli', 'db:create'], ['bin/cli', 'db:migrate']);
|
$testHelper->createTestDb(
|
||||||
|
['bin/cli', 'db:create'],
|
||||||
|
['bin/cli', 'db:migrate'],
|
||||||
|
['bin/doctrine', 'orm:schema-tool:drop'],
|
||||||
|
['bin/doctrine', 'dbal:run-sql'],
|
||||||
|
);
|
||||||
ApiTest\ApiTestCase::setApiClient($httpClient);
|
ApiTest\ApiTestCase::setApiClient($httpClient);
|
||||||
ApiTest\ApiTestCase::setSeedFixturesCallback(fn () => $testHelper->seedFixtures($em, $config['data_fixtures'] ?? []));
|
ApiTest\ApiTestCase::setSeedFixturesCallback(fn () => $testHelper->seedFixtures($em, $config['data_fixtures'] ?? []));
|
||||||
|
@ -22,7 +22,12 @@ if (file_exists($covFile)) {
|
|||||||
unlink($covFile);
|
unlink($covFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
$testHelper->createTestDb(['bin/cli', 'db:create'], ['bin/cli', 'db:migrate']);
|
$testHelper->createTestDb(
|
||||||
|
['bin/cli', 'db:create'],
|
||||||
|
['bin/cli', 'db:migrate'],
|
||||||
|
['bin/doctrine', 'orm:schema-tool:drop'],
|
||||||
|
['bin/doctrine', 'dbal:run-sql'],
|
||||||
|
);
|
||||||
CliTest\CliTestCase::setSeedFixturesCallback(
|
CliTest\CliTestCase::setSeedFixturesCallback(
|
||||||
static fn () => $testHelper->seedFixtures($em, $config['data_fixtures'] ?? []),
|
static fn () => $testHelper->seedFixtures($em, $config['data_fixtures'] ?? []),
|
||||||
);
|
);
|
||||||
|
@ -8,5 +8,10 @@ use Psr\Container\ContainerInterface;
|
|||||||
|
|
||||||
/** @var ContainerInterface $container */
|
/** @var ContainerInterface $container */
|
||||||
$container = require __DIR__ . '/../container.php';
|
$container = require __DIR__ . '/../container.php';
|
||||||
$container->get(Helper\TestHelper::class)->createTestDb(['bin/cli', 'db:create'], ['bin/cli', 'db:migrate']);
|
$container->get(Helper\TestHelper::class)->createTestDb(
|
||||||
|
['bin/cli', 'db:create'],
|
||||||
|
['bin/cli', 'db:migrate'],
|
||||||
|
['bin/doctrine', 'orm:schema-tool:drop'],
|
||||||
|
['bin/doctrine', 'dbal:run-sql'],
|
||||||
|
);
|
||||||
DbTest\DatabaseTestCase::setEntityManager($container->get('em'));
|
DbTest\DatabaseTestCase::setEntityManager($container->get('em'));
|
||||||
|
@ -13,10 +13,10 @@ echo "Updating database..."
|
|||||||
php bin/cli db:migrate -n ${flags}
|
php bin/cli db:migrate -n ${flags}
|
||||||
|
|
||||||
echo "Generating proxies..."
|
echo "Generating proxies..."
|
||||||
php vendor/doctrine/orm/bin/doctrine.php orm:generate-proxies -n ${flags}
|
php bin/doctrine orm:generate-proxies -n ${flags}
|
||||||
|
|
||||||
echo "Clearing entities cache..."
|
echo "Clearing entities cache..."
|
||||||
php vendor/doctrine/orm/bin/doctrine.php orm:clear-cache:metadata -n ${flags}
|
php bin/doctrine orm:clear-cache:metadata -n ${flags}
|
||||||
|
|
||||||
# Try to download GeoLite2 db file only if the license key env var was defined
|
# Try to download GeoLite2 db file only if the license key env var was defined
|
||||||
if [ ! -z "${GEOLITE_LICENSE_KEY}" ]; then
|
if [ ! -z "${GEOLITE_LICENSE_KEY}" ]; then
|
||||||
|
@ -22,7 +22,7 @@ use const Shlinkio\Shlink\MIGRATIONS_TABLE;
|
|||||||
class CreateDatabaseCommand extends AbstractDatabaseCommand
|
class CreateDatabaseCommand extends AbstractDatabaseCommand
|
||||||
{
|
{
|
||||||
public const NAME = 'db:create';
|
public const NAME = 'db:create';
|
||||||
public const DOCTRINE_SCRIPT = 'vendor/doctrine/orm/bin/doctrine.php';
|
public const DOCTRINE_SCRIPT = 'bin/doctrine';
|
||||||
public const DOCTRINE_CREATE_SCHEMA_COMMAND = 'orm:schema-tool:create';
|
public const DOCTRINE_CREATE_SCHEMA_COMMAND = 'orm:schema-tool:create';
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
|
Loading…
Reference in New Issue
Block a user