Pergunta

Eu tenho algum código que eu corro de um inicializador e funciona bem. (Salva as configurações padrão de um arquivo YAML para o banco de dados para o Rails settings-cache gema.)

Mas quando eu corro isso no Travis CI, pois está fazendo uma migração do zero, o inicializador falha porque a tabela ainda não existe.

Existe uma maneira de executar o código depois a migração, mas antes do início do aplicativo?

Foi útil?

Solução

Portanto, embora eu não goste de fazer isso, uma maneira fácil de impedir que o inicializador seja executado durante o banco de dados: migre, mas a execução do aplicativo Start ou Test Run é envolvê -lo em um teste de cláusula se a tabela existir. Então, se você pegar seu código de inicializador existente e envolvê -lo

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

Onde 'tabela_name' é o nome da tabela que faltava, então o RAKE DB: Migre e a Spec Run deve ser capaz de concluir com êxito.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top