繁体   English   中英

Symfony命令append '_test'到数据库名in.env.test时如何创建测试数据库?

[英]How to create a test database when Symfony commands append '_test' to the database name in .env.test?

尝试在测试数据库上运行迁移会返回附加“_test”的测试数据库名称。 如何正确创建测试数据库(以及稍后加载固定装置)?

例如:

使用命令symfony new simple --version="6.1.*" --webapp创建了一个新项目,并使用make:entity创建了一些实体。 在 MySQL 8 中,创建了名为simplesimple_test的数据库。

.env包含DATABASE_URL="mysql://name:password@127.0.0.1:3306/simple?serverVersion=8&charset=utf8mb4"

.env.test包含DATABASE_URL="mysql://name:password@127.0.0.1:3306/simple_test?serverVersion=8&charset=utf8mb4"

运行php bin/console doctrine:migrations:migrate结果如预期:

 WARNING! You are about to execute a migration in database "simple" that could result in schema changes and data loss. Are you sure you wish to continue? (yes/no) [yes]:
 > y

[notice] Migrating up to DoctrineMigrations\Version20220907223538
[notice] finished in 4220.2ms, used 22M memory, 1 migrations executed, 7 sql queries

安慰:

php bin/console doctrine:migrations:migrate --env=test

.env.test

...
DATABASE_URL="mysql://name:password@127.0.0.1:3306/simple_test?serverVersion=8&charset=utf8mb4"

结果是:


In ExceptionConverter.php line 101:

  An exception occurred in the driver: SQLSTATE[HY000] [1049] Unknown database 'simple_test_test'


In Exception.php line 28:

  SQLSTATE[HY000] [1049] Unknown database 'simple_test_test'


In Driver.php line 28:

  SQLSTATE[HY000] [1049] Unknown database 'simple_test_test'

文本_test附加到.env.test中使用的任何数据库名称

好吧,我会[在这里插入自虐]。 我想这种行为记录在某处 - 我还没有看到。

php bin/console doctrine:migrations:migrate --env=test假设存在带有_test的 dev/prod 数据库名称时。

在过去,我需要明确测试数据库的名称。 Symfony 已决定所有测试数据库将是 dev/prod 数据库的名称,并附加_test 所以现在您可以在.env.env.test中使用相同的DATABASE_URL... 有时一个人得到了太多的帮助!

编辑:检查.env.test上的.env.test文档。 我上面描述的行为不存在! 文档显示 URL 包括_test在数据库名称中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM