Skip to content

Commit fda5e69

Browse files
authored
Merge pull request #428 from dbrumann/issue_423
Ignore missing connection in MigrationsCollector
2 parents a8af548 + 296b067 commit fda5e69

File tree

2 files changed

+63
-48
lines changed

2 files changed

+63
-48
lines changed

Collector/MigrationsCollector.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace Doctrine\Bundle\MigrationsBundle\Collector;
66

7+
use Doctrine\DBAL\Exception;
78
use Doctrine\Migrations\DependencyFactory;
89
use Doctrine\Migrations\Metadata\Storage\TableMetadataStorageConfiguration;
910
use Symfony\Component\HttpFoundation\Request;
@@ -32,7 +33,17 @@ public function collect(Request $request, Response $response, \Throwable $except
3233
$metadataStorage = $this->dependencyFactory->getMetadataStorage();
3334
$planCalculator = $this->dependencyFactory->getMigrationPlanCalculator();
3435

35-
$executedMigrations = $metadataStorage->getExecutedMigrations();
36+
try {
37+
$executedMigrations = $metadataStorage->getExecutedMigrations();
38+
} catch (Exception $dbalException) {
39+
$this->dependencyFactory->getLogger()->error(
40+
'error while trying to collect executed migrations',
41+
['exception' => $dbalException]
42+
);
43+
44+
return;
45+
}
46+
3647
$availableMigrations = $planCalculator->getMigrations();
3748

3849
$this->data['available_migrations_count'] = count($availableMigrations);

Resources/views/Collector/migrations.html.twig

Lines changed: 51 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -3,61 +3,65 @@
33
{% import _self as helper %}
44

55
{% block toolbar %}
6-
{% set unavailable_migrations = collector.data.unavailable_migrations_count %}
7-
{% set new_migrations = collector.data.new_migrations|length %}
8-
{% if unavailable_migrations > 0 or new_migrations > 0 %}
9-
{% set executed_migrations = collector.data.executed_migrations|length %}
10-
{% set available_migrations = collector.data.available_migrations_count %}
11-
{% set status_color = unavailable_migrations > 0 ? 'yellow' : '' %}
12-
{% set status_color = new_migrations > 0 ? 'red' : status_color %}
6+
{% if collector.data.unavailable_migrations is defined %}
7+
{% set unavailable_migrations = collector.data.unavailable_migrations_count %}
8+
{% set new_migrations = collector.data.new_migrations|length %}
9+
{% if unavailable_migrations > 0 or new_migrations > 0 %}
10+
{% set executed_migrations = collector.data.executed_migrations|length %}
11+
{% set available_migrations = collector.data.available_migrations_count %}
12+
{% set status_color = unavailable_migrations > 0 ? 'yellow' : '' %}
13+
{% set status_color = new_migrations > 0 ? 'red' : status_color %}
1314

14-
{% set icon %}
15-
{{ include('@DoctrineMigrations/Collector/icon.svg') }}
16-
<span class="sf-toolbar-value">{{ new_migrations + unavailable_migrations }}</span>
17-
{% endset %}
15+
{% set icon %}
16+
{{ include('@DoctrineMigrations/Collector/icon.svg') }}
17+
<span class="sf-toolbar-value">{{ new_migrations + unavailable_migrations }}</span>
18+
{% endset %}
1819

19-
{% set text %}
20-
<div class="sf-toolbar-info-piece">
21-
<b>Current</b>
22-
<span>{{ executed_migrations > 0 ? collector.data.executed_migrations|last.version|split('\\')|last : 'n/a' }}</span>
23-
</div>
24-
<div class="sf-toolbar-info-piece">
25-
<b>Executed</b>
26-
<span class="sf-toolbar-status">{{ executed_migrations }}</span>
27-
</div>
28-
<div class="sf-toolbar-info-piece">
29-
<b>Executed Unavailable</b>
30-
<span class="sf-toolbar-status {{ unavailable_migrations > 0 ? 'sf-toolbar-status-yellow' }}">{{ unavailable_migrations }}</span>
31-
</div>
32-
<div class="sf-toolbar-info-piece">
33-
<b>Available</b>
34-
<span class="sf-toolbar-status">{{ available_migrations }}</span>
35-
</div>
36-
<div class="sf-toolbar-info-piece">
37-
<b>New</b>
38-
<span class="sf-toolbar-status {{ new_migrations > 0 ? 'sf-toolbar-status-red' }}">{{ new_migrations }}</span>
39-
</div>
40-
{% endset %}
20+
{% set text %}
21+
<div class="sf-toolbar-info-piece">
22+
<b>Current</b>
23+
<span>{{ executed_migrations > 0 ? collector.data.executed_migrations|last.version|split('\\')|last : 'n/a' }}</span>
24+
</div>
25+
<div class="sf-toolbar-info-piece">
26+
<b>Executed</b>
27+
<span class="sf-toolbar-status">{{ executed_migrations }}</span>
28+
</div>
29+
<div class="sf-toolbar-info-piece">
30+
<b>Executed Unavailable</b>
31+
<span class="sf-toolbar-status {{ unavailable_migrations > 0 ? 'sf-toolbar-status-yellow' }}">{{ unavailable_migrations }}</span>
32+
</div>
33+
<div class="sf-toolbar-info-piece">
34+
<b>Available</b>
35+
<span class="sf-toolbar-status">{{ available_migrations }}</span>
36+
</div>
37+
<div class="sf-toolbar-info-piece">
38+
<b>New</b>
39+
<span class="sf-toolbar-status {{ new_migrations > 0 ? 'sf-toolbar-status-red' }}">{{ new_migrations }}</span>
40+
</div>
41+
{% endset %}
4142

42-
{{ include('@WebProfiler/Profiler/toolbar_item.html.twig', { link: profiler_url, status: status_color }) }}
43+
{{ include('@WebProfiler/Profiler/toolbar_item.html.twig', { link: profiler_url, status: status_color }) }}
44+
{% endif %}
4345
{% endif %}
4446
{% endblock %}
4547

4648

4749
{% block menu %}
48-
{% set unavailable_migrations = collector.data.unavailable_migrations_count %}
49-
{% set new_migrations = collector.data.new_migrations|length %}
50-
{% set label = unavailable_migrations > 0 ? 'label-status-warning' : '' %}
51-
{% set label = new_migrations > 0 ? 'label-status-error' : label %}
52-
<span class="label {{ label }}">
53-
<span class="icon">{{ include('@DoctrineMigrations/Collector/icon.svg') }}</span>
54-
<strong>Migrations</strong>
55-
{% if unavailable_migrations > 0 or new_migrations > 0 %}
56-
<span class="count">
57-
<span>{{ new_migrations + unavailable_migrations }}</span>
58-
</span>
59-
{% endif %}
60-
</span>
50+
{% if collector.data.unavailable_migrations is defined %}
51+
{% set unavailable_migrations = collector.data.unavailable_migrations_count %}
52+
{% set new_migrations = collector.data.new_migrations|length %}
53+
{% set label = unavailable_migrations > 0 ? 'label-status-warning' : '' %}
54+
{% set label = new_migrations > 0 ? 'label-status-error' : label %}
55+
<span class="label {{ label }}">
56+
<span class="icon">{{ include('@DoctrineMigrations/Collector/icon.svg') }}</span>
57+
<strong>Migrations</strong>
58+
{% if unavailable_migrations > 0 or new_migrations > 0 %}
59+
<span class="count">
60+
<span>{{ new_migrations + unavailable_migrations }}</span>
61+
</span>
62+
{% endif %}
63+
</span>
64+
{% endif %}
6165
{% endblock %}
6266

6367
{% block panel %}

0 commit comments

Comments
 (0)