Pregunta

Tengo algún código que ejecuto de un inicializador y funciona bien. (Guarda la configuración predeterminada de un archivo YAML a la base de datos para la Rails-Settings-Cache joya.)

Pero cuando ejecuto esto en Travis CI, ya que está haciendo una migración desde cero, el inicializador falla porque la tabla aún no existe.

¿Hay alguna forma de ejecutar código? después la migración pero antes de que comience la aplicación?

¿Fue útil?

Solución

Entonces, aunque no me encanta hacer esto, una manera fácil de evitar que el inicializador se ejecute durante DB: migre, pero ejecutar en el inicio o ejecución de la prueba de la aplicación es envolverlo en una prueba de cláusula si la tabla existe. Entonces, si toma su código inicializador existente y lo envuelve en

if ActiveRecord::Base.connection.table_exists? 'table_name'
   ....
end

Donde 'table_name' es el nombre de la tabla faltante, entonces ambos rastrillos DB: migrar y la ejecución de la especificación debería poder completarse con éxito.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top