Skip to content

Commit fa9aac7

Browse files
authored
Merge pull request #95 from kaskadia/2.0
Upgrading to 2.2 in order to support L7. Fixing breaking changes.
2 parents 8922027 + 9933850 commit fa9aac7

21 files changed

+228
-113
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ language: php
33
php:
44
- 7.2
55
- 7.3
6+
- 7.4
67

78
cache:
89
directories:

composer.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
}
1818
],
1919
"require": {
20-
"php": "^7.1",
21-
"doctrine/migrations": "~1.8",
22-
"illuminate/config": "^6.0",
23-
"illuminate/contracts": "^6.0",
24-
"illuminate/console": "^6.0",
25-
"laravel-doctrine/orm": "^1.0"
20+
"php": "^7.2",
21+
"doctrine/migrations": "~2.2",
22+
"illuminate/config": "^7.0",
23+
"illuminate/contracts": "^7.0",
24+
"illuminate/console": "^7.0",
25+
"laravel-doctrine/orm": "^1.6"
2626
},
2727
"require-dev": {
2828
"phpunit/phpunit": "^8.0",

src/Configuration/Configuration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace LaravelDoctrine\Migrations\Configuration;
44

5-
use Doctrine\DBAL\Migrations\Configuration\Configuration as MigrationsConfiguration;
5+
use Doctrine\Migrations\Configuration\Configuration as MigrationsConfiguration;
66
use LaravelDoctrine\Migrations\Naming\NamingStrategy;
77

88
class Configuration extends MigrationsConfiguration

src/Configuration/ConfigurationFactory.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
namespace LaravelDoctrine\Migrations\Configuration;
44

55
use Doctrine\DBAL\Connection;
6+
use Doctrine\Migrations\Exception\MigrationException;
67
use Illuminate\Config\Repository;
78
use Illuminate\Contracts\Config\Repository as ConfigRepository;
9+
use Illuminate\Contracts\Container\BindingResolutionException;
810
use Illuminate\Contracts\Container\Container;
911
use LaravelDoctrine\Migrations\Naming\DefaultNamingStrategy;
1012

@@ -32,9 +34,11 @@ public function __construct(ConfigRepository $config, Container $container)
3234

3335
/**
3436
* @param Connection $connection
35-
* @param string $name
37+
* @param string $name
3638
*
3739
* @return Configuration
40+
* @throws MigrationException
41+
* @throws BindingResolutionException
3842
*/
3943
public function make(Connection $connection, $name = null)
4044
{

src/Console/DiffCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace LaravelDoctrine\Migrations\Console;
44

55
use Doctrine\Common\Persistence\ManagerRegistry;
6-
use Doctrine\DBAL\Migrations\Provider\OrmSchemaProvider;
6+
use Doctrine\Migrations\Provider\OrmSchemaProvider;
77
use Doctrine\ORM\EntityManagerInterface;
88
use Illuminate\Console\Command;
99
use LaravelDoctrine\Migrations\Configuration\ConfigurationProvider;

src/Console/VersionCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace LaravelDoctrine\Migrations\Console;
44

5-
use Doctrine\DBAL\Migrations\MigrationException;
5+
use Doctrine\Migrations\Exception\MigrationException;
66
use Illuminate\Console\Command;
77
use InvalidArgumentException;
88
use LaravelDoctrine\Migrations\Configuration\Configuration;

src/Migration.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
namespace LaravelDoctrine\Migrations;
44

5-
use Doctrine\DBAL\Migrations\Migration as DBALMigration;
5+
use Doctrine\Migrations\MigrationRepository;
6+
use Doctrine\Migrations\Migrator as DBALMigration;
7+
use Doctrine\Migrations\Version\Executor;
8+
use Doctrine\Migrations\Version\Factory;
69
use LaravelDoctrine\Migrations\Configuration\Configuration;
710
use LaravelDoctrine\Migrations\Exceptions\ExecutedUnavailableMigrationsException;
811
use LaravelDoctrine\Migrations\Exceptions\MigrationVersionException;
@@ -44,7 +47,10 @@ public function __construct(Configuration $configuration, $version = 'latest')
4447
*/
4548
protected function makeMigration(Configuration $configuration)
4649
{
47-
return $this->migration = new DBALMigration($configuration);
50+
$repository = $configuration->getDependencyFactory()->getMigrationRepository();
51+
$outputWriter = $configuration->getOutputWriter();
52+
$stopwatch = $configuration->getDependencyFactory()->getStopwatch();
53+
return $this->migration = new DBALMigration($configuration, $repository, $outputWriter, $stopwatch);
4854
}
4955

5056
/**

src/Migrator.php

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace LaravelDoctrine\Migrations;
44

5-
use Doctrine\DBAL\Migrations\Version;
5+
use Doctrine\Migrations\Exception\MigrationException;
6+
use Doctrine\Migrations\MigratorConfiguration;
7+
use Doctrine\Migrations\Version\Version;
68

79
class Migrator
810
{
@@ -11,20 +13,20 @@ class Migrator
1113
*/
1214
protected $notes = [];
1315

14-
/**
15-
* @param Migration $migration
16-
* @param bool|false $dryRun
17-
* @param bool|false $timeQueries
18-
* @param bool|false $allowNoMigration
19-
*/
16+
/**
17+
* @param Migration $migration
18+
* @param bool|false $dryRun
19+
* @param bool|false $timeQueries
20+
* @param bool|false $allowNoMigration
21+
* @throws MigrationException
22+
*/
2023
public function migrate(Migration $migration, $dryRun = false, $timeQueries = false, bool $allowNoMigration = false)
2124
{
22-
$migration->getMigration()->setNoMigrationException($allowNoMigration);
25+
$configuration = $this->setConfiguration($dryRun, $timeQueries, $allowNoMigration);
2326

2427
$sql = $migration->getMigration()->migrate(
2528
$migration->getVersion(),
26-
$dryRun,
27-
$timeQueries
29+
$configuration
2830
);
2931

3032
$this->writeNotes($migration, $timeQueries, $sql);
@@ -38,7 +40,8 @@ public function migrate(Migration $migration, $dryRun = false, $timeQueries = fa
3840
*/
3941
public function execute(Version $version, $direction, $dryRun = false, $timeQueries = false)
4042
{
41-
$version->execute($direction, $dryRun, $timeQueries);
43+
$configuration = $this->setConfiguration($dryRun, $timeQueries);
44+
$version->execute($direction, $configuration);
4245

4346
$verb = $direction === 'down' ? 'Rolled back' : 'Migrated';
4447

@@ -119,4 +122,19 @@ protected function note($versionName, Version $version, $timeQueries = false, $v
119122

120123
$this->notes[] = $msg;
121124
}
125+
126+
/**
127+
* @param bool $dryRun
128+
* @param bool $timeQueries
129+
* @param bool $allowNoMigrations
130+
* @return MigratorConfiguration
131+
*/
132+
private function setConfiguration(bool $dryRun = false, bool $timeQueries = false, bool $allowNoMigrations = false)
133+
{
134+
$configuration = new MigratorConfiguration();
135+
$configuration->setDryRun($dryRun);
136+
$configuration->setTimeAllQueries($timeQueries);
137+
$configuration->setNoMigrationException($allowNoMigrations);
138+
return $configuration;
139+
}
122140
}

src/Naming/DefaultNamingStrategy.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
namespace LaravelDoctrine\Migrations\Naming;
44

5-
use Doctrine\DBAL\Migrations\Finder\MigrationFinderInterface;
6-
use Doctrine\DBAL\Migrations\Finder\RecursiveRegexFinder;
5+
use Doctrine\Migrations\Finder\MigrationDeepFinder;
6+
use Doctrine\Migrations\Finder\MigrationFinder;
7+
use Doctrine\Migrations\Finder\RecursiveRegexFinder;
78

89
class DefaultNamingStrategy implements NamingStrategy
910
{
@@ -30,7 +31,7 @@ public function getClassName($version = null)
3031
}
3132

3233
/**
33-
* @return MigrationFinderInterface
34+
* @return MigrationDeepFinder
3435
*/
3536
public function getFinder()
3637
{

src/Naming/NamingStrategy.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace LaravelDoctrine\Migrations\Naming;
44

5-
use Doctrine\DBAL\Migrations\Finder\MigrationFinderInterface;
5+
use Doctrine\Migrations\Finder\MigrationFinder;
66

77
interface NamingStrategy
88
{
@@ -21,7 +21,7 @@ public function getFilename($version = null);
2121
public function getClassName($version = null);
2222

2323
/**
24-
* @return MigrationFinderInterface
24+
* @return MigrationFinder
2525
*/
2626
public function getFinder();
2727
}

0 commit comments

Comments
 (0)