Como gerenciar o config.php no Magento 2

15

Antes de tudo, talvez seja uma pergunta já respondida, mas não encontrei nada sobre esse assunto.

Não é um problema, mas uma pergunta sobre a melhor maneira de gerenciar o arquivo config.phpno Magento 2.
Na verdade, o nosso config.phpnão é versionado (por padrão no .gitignorearquivo M2 ), portanto não está em nosso repositório. O problema é que, quando alguém instala o projeto, ele não possui esse arquivo, mas ele já possui o banco de dados, portanto não pode executar bin/magento setup:install ...para gerar o arquivo.
Estamos cientes de que bin/magento setup:upgradeadicionamos módulos não declarados a, config.phpmas apenas se o arquivo existir, e bin/magento module:enablepodemos adicionar módulos, mas gostaríamos de evitar o lançamento sempre que implantarmos ou instalarmos o projeto.

Minha (s) pergunta (s):
- Temos que removê config.php- .gitignorelo e versão dele?
- Temos que adicioná-lo na primeira vez no repositório e deixá-lo no .gitignoredepois?
- Qual é a melhor maneira de gerenciar este arquivo?

Matthéo Geoffray
fonte
1
Desde 2.2, sugere-se a adicionar em VCS
weynhamz
Oi @TechliveZheng obrigado pela informação! Você tem uma fonte / explicação para isso?
Matthéo Geoffray

Respostas:

15

Antes de tudo, muito boa pergunta.
Mas ... eu não concordo com isso:

O problema é que quando alguém instala o projeto, ele não possui esse arquivo, mas ele já possui o banco de dados para que não possa executar bin/magento setup:install...

Eu diria que, quando você instala o projeto, se você já possui o banco de dados, deve levar o config.phparquivo também do mesmo local em que o banco de dados foi adquirido.
Dessa forma, você não precisa correr setup:installe tem tudo como deveria.

Eu não recomendaria a versão deste arquivo devido ao seguinte cenário.

  • Você adiciona um novo módulo no dev dev.
  • Você executa setup:upgradepara que o módulo não apareça emconfig.php
  • Você confirma seu código e o implanta em outro ambiente.
  • Sua outra instância env pensa que seu novo módulo já está instalado e você recebe um erro.

Portanto, acho que a melhor solução (IMO) seria simplesmente não a versão e fazer isso dependendo do seu caso:

  • Você clona o projeto e o banco de dados em outro lugar, também deve clonar o config.phparquivo (junto com outros como pub/media) para não ter dados desatualizados.
  • Você clona apenas os arquivos no repositório e inicia com uma lista limpa, não copie config.php, basta executar o instalador que criará isso para você.
Marius
fonte
Eu não tinha pensado nessa solução, ela não parece ser a mais prática, mas você está certo, na verdade, é a que parece a mais lógica. Vamos testar dessa maneira. Se isso não o incomodar, esperarei o final do dia para aceitar sua resposta, talvez outros conselhos possam ser dados. Obrigado mesmo assim !
Matthéo Geoffray 5/08/16
Tentei remover o config.php do repositório e o adicionei ao .gitignore. Outro ambiente falhou ao gerar um novo arquivo config.php quando ele não existia (no modo de desenvolvedor).
Dchayka # 23/17
o que você quer dizer com "falhou"? você tentou instalá-lo em um ambiente diferente?
Marius