Cómo probar automáticamente las evoluciones de Playframework

Estamos utilizando la función de evolución de DB de Play 1.2.x. Quiero que los scripts para crear y desarrollar el esquema se prueben en la prueba automática de reproducción.

Así que necesito una base de datos vacía antes del conjunto de pruebas.

Yo pense acerca de:

  • registrando el oyente @OnApplicationStartup que podría eliminar todas las estructuras en la base de datos (lo que probablemente requeriría un código sucio), y dejar que las evoluciones de la base de datos hagan el resto. Pero las evoluciones del juego también son @OnApplicationStartup y no sé cómo asegurarme de que mi oyente sea el primero. Esto podría superarse con otro truco: llamar a las evoluciones de DB desde el código.
  • soltando y recreando DB con algún script, antes de ejecutar la prueba automática, pero eso no hace que mi prueba sea siempre la prueba que quiero. Por ejemplo, siempre debo recordar usar mi script, no solo la prueba automática. Este script no se ejecutará al ejecutar la prueba de eclipse.

¿Hay más opciones?

¿O tal vez alguien pueda sugerir alguna otra solución para probar esto?

Muchas Gracias

preguntado el 12 de junio de 12 a las 14:06

1 Respuestas

Más simple: use una base de datos en memoria (compatible en sintaxis con su base de datos prod para que el SQL funcione bien).

Tendrá una nueva base de datos cada vez que se ejecute, y las evoluciones se ejecutarán siempre.

Respondido el 13 de junio de 12 a las 15:06

El problema es que el modo mysql en h2 no es 100% compatible con la sintaxis real de mysql, por ejemplo, en términos del comando alter table. pero puedo superarlo de alguna manera. y esta podría ser la mejor opción por ahora. - Tomasz Bartczak

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.