Pergunta

Estou desenvolvendo uma loja online com Magento. O site será alto tráfego e terá uma configuração de dois servidores, teste e produção.

A minha pergunta é como é que as lojas online, especificamente Magento lidar com isso?

A ideia que tive é:

  • local de levar a produção off-line
  • banco de dados de teste vazio
  • Copiar dados de banco de dados de produção. (Talvez)
  • Test
  • Copiar arquivos e banco de dados para o site Production

Eu sei Magento oferece uma opção da empresa, mas este é um script que eu gostaria de me escrever.

Foi útil?

Solução

Você não deve precisar de tomar o local de produção off-line.

O que eu gostaria sugest (e você deve ser capaz de roteiro isso) é no local de produção para executar mysqldump -u root -ppassword db_name > db_name.sql para produzir uma cópia do banco de dados. em seguida, rsync executar (você pode obtê-lo tanto para Linux e Windows) no diretório de arquivos para o rsync para a máquina de teste todos os arquivos que deseja copiar (imagens?)

Depois de fazer qualquer teste em sua que você deseja impulso à produção que pode fazer-se uma das 2 maneiras. ou (e eu prefiro este método) salvar as alterações feitas ao banco de dados em um arquivo SQL e executá-lo no local de produção e, ao mesmo tempo sincronização arquivos de volta qualquer alterados. ou você pode usar mysql para registrar todas as consultas para um arquivo, em seguida, re-jogar estes no local de produção.

Melhor para não tomar o local de produção para baixo se você não precisa.

Outras dicas

Você quer mySQL master / slave com a leitura do escravo do banco de dados escravo, mas escrito ao vivo. Isso pode ser configurado no arquivo local.xml. Você deve ser capaz de executar o rsync para os arquivos, com --exclude para o var / session e arquivos var / cache. Além disso, você pode querer --exclude o logotipo se é um servidor de desenvolvimento. O logotipo pode ser mudado para dizer 'teste' para que você não confundi-lo com Live.

Na verdade, se você fizer alterações para o banco de dados, você terá que tomar o site off-line (mesmo que por apenas alguns segundos), enquanto você mudar a partir do código antigo para o novo código, e executar o script de migração de banco de dados.

Você pode estar interessado em saber que

  • postgres tem DDL transacional: se você quebrar o seu script de migração em uma transação e quebra alguma coisa no meio, a coisa toda é revertida (incluindo TABLE DROP)

  • postgres não precisa reescrever a tabela para adicionar uma coluna (MySQL faz e é muito lento)

  • Se você usar MyISAM você está condenado por muitas razões, uma delas sendo que os backups fazendo vai levar seu site fora do ar por alguns minutos.

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