Fix SQLite migration - #387
Merged
Merged
Conversation
Contributor
|
Test merged PR on Playground |
aristath
approved these changes
Mar 27, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Yesterday we have added a fix for SQLite error we had reported, but it turns out it broke the Playground instance (which uses SQLite) with the following
error
Basically the problems were caused by
data_idmissing, which means our migration script must have deleted it.But why? It should run only if
data_idisINT, which is not for several months now.The reason is that
$wpdb->get_row( "DESCRIBE $table_name data_id" )->Type )actually doesn't work in SQLite.SQLite doesn't have
DESCRIBEcommand and SQLite plugin tries to transliterate it, but the end result is not the result for the specific column we wanted (data_id), it is for all columns in the table - and first row in the table isid BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT. So migration was running because wrong column was checked.This solution should work for both DB Engines, I have tested them in both but since I had problems with setting up SQlite plugin locally it would be good if someone double checks it.