[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:wipe
commands, andRefreshDatabase
trait, theDatabaseTruncation
trait does not handle schema names on SQLServer and PostgreSQL and doesn't respectsearch_path
on PostgreSQL.This PR does:
DatabaseTruncation
trait to support schema names (SQLServer and PostgreSQL).DatabaseTruncation
trait to respectsearch_path
config of the DB connection (PostgreSQL).prefix
config better onDatabaseTruncation
trait.DatabaseTruncation
trait.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
DatabaseTruncation
docs.You can also define these properties based on connection names:
Note:
migrations
table (on all schemas) is always ignored, and never get truncated using this trait.