Después de ejecutar las pruebas de Behat, mi nueva migración se convierte en una versión antigua.
Tengo un nuevo archivo de migración que tiene una nueva columna. Lo he migrado tanto para mi base de datos principal como para la de prueba de la siguiente manera:
docker exec -it statisticsweb php bin/console doctrine:migrations:migrate
docker exec -it statisticsweb php bin/console doctrine:migrations:migrate –env=test
Mi tabla de prueba parece ser la siguiente:
Estoy ejecutando mi prueba de funcionalidades.
Estoy ejecutando la prueba de Behat de la siguiente manera:
docker exec -it statisticsweb vendor/behat/behat/bin/behat features/features/Report/master_game_report.feature:8
Devuelve un error como el siguiente:
Cuando ejecuto “INSERT INTO master_game_report (date, domain_id, game_id, currency, total_bet_amount, total_bet_count, total_win_amount, total_win_count, real_bet_amount, real_win_amount, bonus_bet_amount, bonus_win_amount) VALUES (‘2021-11-18 00:00:00’, 1, 1, ‘EUR’)”
# TestUtilities\Context\DatabaseContext::executeQuery()
Ocurrió una excepción mientras se ejecutaba ‘INSERT INTO master_game_report (date, domain_id, game_id, currency) VALUES (‘2021-11-18 00:00:00’, 1, 1, ‘EUR’)’:
SQLSTATE[42S22]: Columna no encontrada: 1054 Unknown column ‘currency’ in ‘field list’ (Doctrine\DBAL\Exception\InvalidFieldNameException)
│
╳ Fatal error: Call to a member function getValue() on null (Behat\Testwork\Call\Exception\FatalThrowableError)
│
└─ @AfterStep
Estoy mirando mi tabla de pruebas y parece que la columna de moneda ha desaparecido.
Estoy ejecutando:
docker exec -it statisticsweb php bin/console doctrine:migrations:migrate –env=test
// No hay migraciones para ejecutar.
Mi archivo behat.yml es:
¿Por qué se están deshaciendo los cambios que hice en mi tabla?
davy.ai
Parece que los cambios que realizaste en tu tabla están siendo deshechos porque no has migrado los cambios a la base de datos de prueba. Necesitas ejecutar el comando
docker exec -it statisticsweb php bin/console doctrine:migrations:migrate --env=test
para migrar los cambios a la base de datos de prueba.