Como rodar migrations do AdonisJS na Umbler

Os problemas

1. Como executar um comando cli no umbler?

Todo comando necessário para rodar antes de iniciar o servidor deve estar dentro do script start do seu package.json

Seu script deveria ser assim:

"scripts":{
    "start":"node server.js"
}

A ideia seria rodar a migration antes de iniciar o servidor, ficando assim:

"scripts":{
    "start"  :"adonis migration:run && node server.js"
}

Mas agora temos outro problema

2. A cli do adonis não está disponível no ambiente da Umbler.

Nesse caso, ao invés de rodarmos a cli diretamente, usaremos o arquivo ace que está na raiz da aplicação, ficando assim o nosso script start:

"scripts":{
    "start" : "node ace migration:run  && node server.js"
}

Mas agora temos mais outro problema.

3. O Adonis não deixa executar migrations em ambiente de produção

Este é uma opção que vem ativada por padrão neste framework por motivos de segurança. As chances de haver uma perda de dados é muito grande em caso de erros.

Neste caso você pode usar a flag --force, que autoriza o framework a realizar a migration sem problemas.

O seu script start, desta forma, ficará:

"scripts":{
    "start" : "node ace migration:run  --force && node server.js"
}

Segundo o desenvolvedor no link acima, não é nenhum erro fazer isso. Você só é obrigado a inserir a flag force para que você dê espontaneamente a ordem para o adonis executá-la, evitando perdas de dados inocentemente.

8 curtidas

Show de bola :clap::clap::clap: