Skip to content

Commit b0246c5

Browse files
authored
Merge pull request #212 from moufmouf/read_schema_from_lock_file
Always read the schema from the lock file
2 parents 76242ee + 61db159 commit b0246c5

17 files changed

+615
-113
lines changed

phpstan.neon

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,14 @@ parameters:
1515
- "#Method TheCodingMachine\\\\TDBM\\\\Schema\\\\ForeignKey::.*() should return .* but returns array<string>|string.#"
1616
- '#Method TheCodingMachine\\TDBM\\NativeWeakrefObjectStorage::get\(\) should return TheCodingMachine\\TDBM\\DbRow\|null but returns object\|null.#'
1717
-
18-
message: '#WeakRef#'
19-
path: src/WeakrefObjectStorage.php
18+
message: '#WeakRef#'
19+
path: src/WeakrefObjectStorage.php
2020
-
2121
message: '#Result of && is always false.#'
2222
path: src/Test/Dao/Bean/Generated/ArticleBaseBean.php
23+
-
24+
message: '#TheCodingMachine\\TDBM\\Schema\\LockFileSchemaManager::__construct\(\) does not call parent constructor from Doctrine\\DBAL\\Schema\\AbstractSchemaManager.#'
25+
path: src/Schema/LockFileSchemaManager.php
2326
#reportUnmatchedIgnoredErrors: false
2427
includes:
2528
- vendor/thecodingmachine/phpstan-strict-rules/phpstan-strict-rules.neon

phpunit.mariadb.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,13 @@
2525
<var name="db_port" value="3306"/>
2626
<var name="db_driver" value="pdo_mysql"/>
2727
</php>
28-
28+
2929
<filter>
3030
<whitelist processUncoveredFilesFromWhitelist="true">
3131
<directory suffix=".php">src/</directory>
3232
<exclude>
3333
<directory suffix=".php">src/Test</directory>
34+
<file>src/Schema/LockFileSchemaManager.php</file>
3435
</exclude>
3536
</whitelist>
3637
</filter>

phpunit.mysql8.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,13 @@
2525
<var name="db_port" value="3306"/>
2626
<var name="db_driver" value="pdo_mysql"/>
2727
</php>
28-
28+
2929
<filter>
3030
<whitelist processUncoveredFilesFromWhitelist="true">
3131
<directory suffix=".php">src/</directory>
3232
<exclude>
3333
<directory suffix=".php">src/Test</directory>
34+
<file>src/Schema/LockFileSchemaManager.php</file>
3435
</exclude>
3536
</whitelist>
3637
</filter>

phpunit.oracle.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,13 @@
2626
<var name="db_port" value="1521"/>
2727
<var name="db_driver" value="oci8"/>
2828
</php>
29-
29+
3030
<filter>
3131
<whitelist processUncoveredFilesFromWhitelist="true">
3232
<directory suffix=".php">src/</directory>
3333
<exclude>
3434
<directory suffix=".php">src/Test</directory>
35+
<file>src/Schema/LockFileSchemaManager.php</file>
3536
</exclude>
3637
</whitelist>
3738
</filter>

phpunit.postgres.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,13 @@
2525
<var name="db_port" value="5432"/>
2626
<var name="db_driver" value="pdo_pgsql"/>
2727
</php>
28-
28+
2929
<filter>
3030
<whitelist processUncoveredFilesFromWhitelist="true">
3131
<directory suffix=".php">src/</directory>
3232
<exclude>
3333
<directory suffix=".php">src/Test</directory>
34+
<file>src/Schema/LockFileSchemaManager.php</file>
3435
</exclude>
3536
</whitelist>
3637
</filter>

phpunit.xml.dist

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22

3-
<phpunit backupGlobals="false"
3+
<phpunit
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/8.5/phpunit.xsd"
6+
backupGlobals="false"
47
backupStaticAttributes="false"
58
colors="true"
69
convertErrorsToExceptions="true"
@@ -25,12 +28,13 @@
2528
<var name="db_port" value="3306"/>
2629
<var name="db_driver" value="pdo_mysql"/>
2730
</php>
28-
31+
2932
<filter>
3033
<whitelist processUncoveredFilesFromWhitelist="true">
3134
<directory suffix=".php">src/</directory>
3235
<exclude>
3336
<directory suffix=".php">src/Test</directory>
37+
<file>src/Schema/LockFileSchemaManager.php</file>
3438
</exclude>
3539
</whitelist>
3640
</filter>

src/Configuration.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Doctrine\Common\Cache\VoidCache;
99
use Doctrine\DBAL\Connection;
1010
use Mouf\Database\SchemaAnalyzer\SchemaAnalyzer;
11+
use TheCodingMachine\TDBM\Schema\LockFileSchemaManager;
1112
use TheCodingMachine\TDBM\Utils\Annotation\AnnotationParser;
1213
use TheCodingMachine\TDBM\Utils\Annotation\Autoincrement;
1314
use TheCodingMachine\TDBM\Utils\Annotation\UUID;
@@ -118,18 +119,20 @@ public function __construct(
118119
} else {
119120
$this->cache = new VoidCache();
120121
}
122+
$this->lockFilePath = $lockFilePath;
123+
$schemaLockFileDumper = new SchemaLockFileDumper($this->connection, $this->cache, $this->getLockFilePath());
124+
$lockFileSchemaManager = new LockFileSchemaManager($this->connection->getSchemaManager(), $schemaLockFileDumper);
121125
if ($schemaAnalyzer !== null) {
122126
$this->schemaAnalyzer = $schemaAnalyzer;
123127
} else {
124-
$this->schemaAnalyzer = new SchemaAnalyzer($this->connection->getSchemaManager(), $this->cache, $this->getConnectionUniqueId());
128+
$this->schemaAnalyzer = new SchemaAnalyzer($lockFileSchemaManager, $this->cache, $this->getConnectionUniqueId());
125129
}
126130
$this->logger = $logger;
127131
$this->generatorEventDispatcher = new GeneratorEventDispatcher($generatorListeners);
128132
$this->pathFinder = new PathFinder();
129133
$this->annotationParser = $annotationParser ?: AnnotationParser::buildWithDefaultAnnotations([]);
130134
$this->codeGeneratorListener = new CodeGeneratorEventDispatcher($codeGeneratorListeners);
131-
$this->namingStrategy = $namingStrategy ?: new DefaultNamingStrategy($this->annotationParser, $this->connection->getSchemaManager());
132-
$this->lockFilePath = $lockFilePath;
135+
$this->namingStrategy = $namingStrategy ?: new DefaultNamingStrategy($this->annotationParser, $lockFileSchemaManager);
133136
}
134137

135138
/**

0 commit comments

Comments
 (0)