问题
我对 postgres 10.5
和 symfony 4
应用程序进行了全新设置,在 php 7.1
上运行。但是当我尝试运行迁移时。我不断收到以下 Invalid value for parameter "client_encoding": "utf8mb4"
错误。
重现步骤
- 在
.env
文件上,根据您的设置修改 DSN 以更正值,例如。我的是DATABASE_URL="pgsql://postgres:password@db:5432/a_db"
。 - 使用
php bin/console make:entity
创建一个实体(任何人都可以) - 制作迁移文件
php bin/console make:migration
预期结果
我应该收到成功
消息。
所以我的问题是
我在关注 documentation 时错过了什么?
最佳答案
所以我在 postgres 中的实际客户端配置是 utf8
而不是 utf8mb4
。似乎 symfony 不会自动为我们检测版本和数据库。
Symfony 4
在配置文件 config/packages/doctrine.yaml
中为 MYSQL
保留了标准的 utf8mb4
>。不应忘记根据这些更改此配置文件 allowed configuration .所以当我更改值时问题就解决了
来自
数据库:
驱动程序:'pdo_mysql'
服务器版本:'5.7'
字符集:utf8mb4
默认表选项:
字符集:utf8mb4
整理:utf8mb4_unicode_ci
到
数据库:
驱动程序:'pdo_postgresql'
服务器版本:'10.5'
字符集:utf8
默认表选项:
字符集:utf8
整理:utf8_unicode_ci
关于php - Symfony 4,Postgres - `Invalid value for parameter "client_encoding": "utf8mb4"` on running doctrine command,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52338761/