Skip to content

Commit c02a481

Browse files
committed
Added dump-schema command
1 parent 79042ef commit c02a481

File tree

3 files changed

+38
-3
lines changed

3 files changed

+38
-3
lines changed

src/Console/DumpSchemaCommand.php

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
namespace LaravelDoctrine\Migrations\Console;
4+
5+
use LaravelDoctrine\Migrations\Configuration\DependencyFactoryProvider;
6+
7+
class DumpSchemaCommand extends BaseCommand
8+
{
9+
protected $signature = 'doctrine:migrations:dump-schema
10+
{--em= : For a specific EntityManager.}
11+
{--formatted : Format the generated SQL.}
12+
{--filter-tables=* : Filter the tables to dump via Regex.}
13+
{--line-length=120 : Max line length of unformatted lines.}
14+
';
15+
16+
/**
17+
* Execute the console command.
18+
*
19+
* @param DependencyFactoryProvider $provider
20+
* @return int
21+
* @throws \Exception
22+
*/
23+
public function handle(DependencyFactoryProvider $provider): int
24+
{
25+
$dependencyFactory = $provider->fromEntityManagerName($this->option('em'));
26+
27+
$command = new \Doctrine\Migrations\Tools\Console\Command\DumpSchemaCommand($dependencyFactory);
28+
29+
return $command->run($this->getDoctrineInput($command), $this->output->getOutput());
30+
}
31+
}

src/MigrationsServiceProvider.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Illuminate\Support\Str;
99
use LaravelDoctrine\Migrations\Configuration\DependencyFactoryProvider;
1010
use LaravelDoctrine\Migrations\Console\DiffCommand;
11+
use LaravelDoctrine\Migrations\Console\DumpSchemaCommand;
1112
use LaravelDoctrine\Migrations\Console\ExecuteCommand;
1213
use LaravelDoctrine\Migrations\Console\GenerateCommand;
1314
use LaravelDoctrine\Migrations\Console\LatestCommand;
@@ -60,7 +61,8 @@ public function register()
6061
RollbackCommand::class,
6162
GenerateCommand::class,
6263
SyncMetadataCommand::class,
63-
ListCommand::class
64+
ListCommand::class,
65+
DumpSchemaCommand::class
6466
]);
6567
}
6668

tests/CommandConfigurationTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Doctrine\Migrations\Tools\Console\Command\DoctrineCommand;
66
use Illuminate\Console\Command;
77
use LaravelDoctrine\Migrations\Console\DiffCommand;
8+
use LaravelDoctrine\Migrations\Console\DumpSchemaCommand;
89
use LaravelDoctrine\Migrations\Console\ExecuteCommand;
910
use LaravelDoctrine\Migrations\Console\GenerateCommand;
1011
use LaravelDoctrine\Migrations\Console\LatestCommand;
@@ -36,7 +37,8 @@ public function testAllCommandsAreConfiguredCorrectly(): void
3637
GenerateCommand::class => \Doctrine\Migrations\Tools\Console\Command\GenerateCommand::class,
3738
SyncMetadataCommand::class => \Doctrine\Migrations\Tools\Console\Command\SyncMetadataCommand::class,
3839
RollupCommand::class => \Doctrine\Migrations\Tools\Console\Command\RollupCommand::class,
39-
ListCommand::class => \Doctrine\Migrations\Tools\Console\Command\ListCommand::class
40+
ListCommand::class => \Doctrine\Migrations\Tools\Console\Command\ListCommand::class,
41+
DumpSchemaCommand::class => \Doctrine\Migrations\Tools\Console\Command\DumpSchemaCommand::class,
4042
];
4143

4244
foreach ($commands as $ourCommandClass => $doctrineCommandClass) {
@@ -53,7 +55,7 @@ public function testAllCommandsAreConfiguredCorrectly(): void
5355
private static function assertSameCommandConfiguration(Command $ourCommand, DoctrineCommand $theirCommand): void
5456
{
5557
// We set a default value for these options
56-
$optionsIgnoredForRequired = ['em', 'filter-expression'];
58+
$optionsIgnoredForRequired = ['em', 'filter-expression', 'filter-tables'];
5759

5860
// Assert option configuration
5961
foreach ($ourCommand->getDefinition()->getOptions() as $ourOption) {

0 commit comments

Comments
 (0)