[11.x] Fix schema names on DatabaseTruncation trait (PostgreSQL and SQLServer)
#53787
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.
Fixes #53745
Unlike
migrate:fresh,db:wipecommands, andRefreshDatabasetrait, theDatabaseTruncationtrait does not handle schema names on SQLServer and PostgreSQL and doesn't respectsearch_pathon PostgreSQL.This PR does:
DatabaseTruncationtrait to support schema names (SQLServer and PostgreSQL).DatabaseTruncationtrait to respectsearch_pathconfig of the DB connection (PostgreSQL).prefixconfig better onDatabaseTruncationtrait.DatabaseTruncationtrait.Schema::dropAllTables(),Schema::dropAllViews(), andSchema::dropAllTypes()methods on the PostgreSQL schema builder: No need to escape schema names when comparing values, becauseSchema::getSchemas()andSchema::getTables()return unescaped values.Example
Refer to
DatabaseTruncationdocs.You can also define these properties based on connection names:
Note:
migrationstable (on all schemas) is always ignored, and never get truncated using this trait.