【发布时间】:2020-06-30 10:29:38
【问题描述】:
我认为这对某些人来说可能是一个愚蠢的问题,但我发誓我自己无法找到答案。
我还在学习 Symfony,所以请善待。
实际上我已经在 .env 文件中设置了对我的数据库的访问权限:
[...]
DATABASE_URL=mysql://root:db_password@127.0.0.1:3308/db_name
[...]
然后我在 config/doctrine.yaml 中定义了环境变量:
doctrine:
dbal:
default_connection: default
connections:
default:
dbname: Symfony
user: root
password: null
host: localhost
server_version: '8.0'
driver: pdo_mysql
charset: UTF8
所以我运行以下命令:
> php bin/console doctrine:database:create
但是'Symfony'数据库已经在mariadb下创建了。
:(我不明白为什么,因为我已经明确定义我使用的是 8.0 版本,而这个版本不是 mariadb 版本。
我也试过这个:
# .symfony/services.yaml
mydatabase:
# supported versions: 5.7, 8.0
type: oracle-mysql:8.0
disk: 1024
作为symfony documentation saying to do,但它仍然无法正常工作。 我收到以下错误消息,因为 mydatabase 不是 symfony 服务:
C:\Users\vincp\Symfony\charming_tuto>php bin/console doctrine:database:create
In FileLoader.php line 173:
There is no extension able to load the configuration for "mydatabase" (in "C:\Users\vincp\Symfony\charming_tuto\con
fig/services.yaml"). Looked for namespace "mydatabase", found ""framework", "sensio_framework_extra", "twig", "twig
_extra", "web_profiler", "monolog", "debug", "webpack_encore", "doctrine", "doctrine_migrations", "maker"" in C:\Us
ers\vincp\Symfony\charming_tuto\config/services.yaml (which is being imported from "C:\Users\vincp\Symfony\charming
_tuto\src\Kernel.php").
我想使用 mysql,因为这是我通常使用的 DBMS。 (如果您认为我应该使用 mariadb 而不是 mysql,我对此持开放态度,但请给我一些论据。我真的很感兴趣)
【问题讨论】:
-
ENV db 字符串对我来说看起来不错,在教义.yaml 对我来说似乎不需要什么东西,我也不使用 service.yaml
-
如果它将数据写入您的 MariaDB 实例,那么配置可能会混淆。您可以使用
bin/console debug:container --env-vars检查您的.env是否以某种方式被覆盖。您可能还想检查bin/console debug:config doctrine dbal以仔细检查配置是否使用环境变量或某些固定参数,例如数据库或服务器名称。在您的应用中,您还可以使用网络分析器来检查使用了哪个数据库连接。 -
好的!我忘了设置端口。谢谢@dbrumann
bin/console debug:config doctrine dbal帮了我很多