我正在为 prod 环境使用此学说配置:
doctrine:
dbal:
default_connection: app_connection
connections:
app_connection:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
mapping_types:
bit: boolean
但是当本地工作时,我总是必须删除mapping_types:bit: boolean
部分以便能够删除和创建我的数据库。 (否则我会收到错误“未知数据库”)
所以我想我可以通过复制config_dev.yml文件中的学说配置来覆盖它,而不是编写mapping_types部分,但它不起作用。如果我不在 config.yml 中删除它,我就会不断收到错误。
我想我可以使用一个不会导入配置文件的 config_dev 文件,但我想知道是否有一种有效的方法来覆盖“mapping_types”部分。
最佳答案
您可以使用parameters
字段(来自parameters.yml 文件)以便在不同的计算机中进行配置。例如,您可以在 config.yml 文件中指定:
doctrine:
dbal:
default_connection: app_connection
connections:
app_connection:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
mapping_types: "%database_mapping_types%"
并在生产服务器的 parameters.yml
中进行配置:
parameters.yml
database_mapping_types: {bit: boolean}
并在本地服务器的 parameters.yml
中进行配置:
parameters.yml
database_mapping_types: ~
显然在 parameter.yml.dist
中设置默认值作为示例:
parameters.yml.dist
database_mapping_types: ~
编辑:
当然,您可以为生产环境而不是开发环境指定不同的配置,如下所示:
config_dev.yml
doctrine:
dbal:
default_connection: app_connection
connections:
app_connection:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
mapping_types: ~
在产品环境中,您可以覆盖所需的 key ,如下所示:
config_prod.yml
doctrine:
dbal:
default_connection: app_connection
connections:
app_connection:
mapping_types:
bit: boolean
希望这有帮助
关于php - 使用 Symfony 覆盖 config_dev 中的 mapping_types 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40751236/