[8.x] Solve the Primary Key issue in databases with sql_require_primary_key enabled #37715
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 created in the following of this issue #33238 & here to solve the migration problem for databases with
sql_require_primary_key
enabled, (e.g. DigitalOcean machines).It was OK for the
auto-increment
fields, but it was not working for other fields which need to beprimary
, e.g. thePassport Migration
:In this situation, at first, the table was created and then altered to have a
primary key
onid
.So there were two queries executed to create the above table.
This PR modifies the grammar to produce ONLY SINGLE QUERY like this:
This causes a tiny improvement during migrations especially for tests using
RefreshDatabase
middleware.Also, the changes include
MySQL
,Postgres
,SQL Server
andSQLite
with the required TESTS for all grammars.