簡體   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