Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Problemas al integrar proyecto symfony con travis

8 de junio de 2016

Buenas noches. No consigo hacer que me funcione travis con mi proyecto, me da un error al no reconocer el nombre de la base de datos. ¿Me podrían decir que estoy haciendo mal? He mirado otras configuraciones por internet y la documentación pero no localizo el problema.

Pego el enlace de travis con el error.

Este es el código que tengo en mi .travis.yml

language: php
sudo: false

cache:
  directories:
    - $HOME/.composer/cache/files

matrix:
  fast_finish: true
  include:
    - php: 5.5
    - php: 5.6
    - php: 7.0
    - php: hhvm
  allow_failures:
    - php: hhvm

before-install:
  - composer self-update

install:
  - composer install -n --no-interaction

before-script:
  - cp app/config/parameters.yml.travis app/config/parameters.yml
  - php bin/console doctrine:database:create --env=test
  - php bin/console doctrine:schema:create --env=test
  - php bin/console doctrine:fixtures:load -n --env=test

script:
  - phpunit -c app

notifications:
  email: [email protected]

Respuestas

#1

El error está relacionado con un cambio reciente de Doctrine. Para evitarlo, tienes que definir esta opción de configuración:

doctrine:
    dbal:
    # ...
        server_version: 5.6

En esta página se explica un poco más esta opción y cómo determinar el mejor valor en tu caso. En esta pregunta de StackOverflow también tienes información.

Otra forma más avanzada de solucionar este problema es usar la opción platform_service (también de DBAL) pero yo empezaría con server_version que es más fácil y funciona bien.

@javiereguiluz

8 junio 2016, 8:24
#2

Gracias ese era el problema.

Pero ahora no me funcionan los tests en travis, en local si me funcionan.

¿Puede ser por el orden en el que creo la bd, schema y fixtures?

@nonio_87

8 junio 2016, 20:14
#3

Mirando en los logs de Travis no veo dónde ejecutas los comandos de Doctrine para crear la base de datos con los fixtures. En cualquier caso, el orden no debería ser un problema porque siempre es: database:create, schema:create y fixtures:load.

Por otra parte, el error de Travis dice que donde tu esperas una respuesta HTTP 200, se obtiene en realidad una respuesta 302. ¿En local no se produce este redireccionamiento?

@javiereguiluz

8 junio 2016, 20:27
#4

He conseguido que me creara la base de datos sacándola del apartado before-script y añadiendola a install. Una vez creada ya me funcionan los tests.

Dejo un enlace a un gist que he creado con la configuración por si alguien la necesita.

Muchas gracias Javier por tu ayuda.

@nonio_87

8 junio 2016, 22:25