Fix TypeORM CapacitorDriver PRAGMA Statement Execution for Schema Synchronization #640
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses a critical issue in TypeORM's Capacitor driver that prevents proper schema synchronization and migration functionality. The root cause lies in how PRAGMA statements are executed in the SQLite driver.
Issue Summary
The current implementation of
modify-typeorm.cjs
incorrectly routes PRAGMA statements throughexecute
method, which return0
instead of the expected metadata results. This causes schema synchronization to fail with errors like:When TypeORM attempts to retrieve table metadata using PRAGMA statements in
AbstractSqliteQueryRunner
, it receives empty results:Solution
The fix ensures that all PRAGMA statements are executed with the
query
method instead ofexecute
orrun
inCapacitorQueryRunner
, allowing them to properly return metadata results. This is crucial for:synchronize: true
)Previous attempts at fixing this issue only moved PRAGMA statements from one execution method to another without addressing the core issue - PRAGMA statements need to be executed with methods that return results, not just success indicators.
Implementation Details
Other changes
This fix ensures compatibility with both schema synchronization and migrations, providing a reliable database layer for Capacitor applications.