Improve PostgreSQL support by using connection config from config/database.php
#320
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.
In Laravel, database connections are defined in
config/database.php
under theconnections
key.IMPORTANT
It would be better to rely on the configuration defined here and use those settings directly. Each connection also defines the database to use, and in the case of PostgreSQL, there are additional schema-specific settings available, such as
schema
andsearch_path
(more info: laravel/ideas#918).Because of this, the following query is unnecessary:
SELECT datname FROM pg_database
Example:
In the current implementation, what the code calls "schemas" are essentially databases, see: #318
Since Laravel supports defining multiple connections (e.g.,
log_connection
), hardcoding the connection name can result in different behavior than what is passed via the CLI.This is why I use
$connectionName
to pass the correct one dynamically:Because multiple entries can be defined under search_path, I renamed schema_database to schemas and changed its type to an array.
I hope these changes don’t cause issues for other PostgreSQL users.
With our new database configuration and CLI command, we can successfully generate models from both schemas:
Command: