Pergunta

Qual seria a melhor maneira de portar um site Drupal existente para uma aplicação Django? Eu tenho cerca de 500 páginas (principalmente módulos livros) e cerca de 50 posts. Não estou usando qualquer módulo do 3o partido. Eu gostaria de manter as URLs de corrente (para fins de SEO) e banco de dados de migração para Django. Vou criar um aplicativo de blog simples, de modo que migram posts deve ser ok. Qual seria a melhor maneira de servir mais de 500 páginas com Django? Eu gostaria de usar administrador para editar / adicionar novas páginas.

Foi útil?

Solução

desenvolvimento Todos Django é semelhante, e vocês vão se encaixam no padrão.

  1. Definir o modelo de Django para seus livros e posts.

  2. teste de unidade que modelo usando Django built-in testar capacidades.

  3. Escrever alguns pequenos utilitários para carregar seus dados legados para Django. Neste ponto, você vai perceber que o seu modelo de Django não é perfeito. Boa. Consertá-lo. Fixar os testes. Refazer as cargas.

  4. Configure a interface de administração padrão para o seu modelo. Neste ponto, você vai gastar tempo ajustando a interface de administração. Você vai perceber o seu modelo de dados está errado. O que é uma boa coisa. Corrigir o seu modelo. Fixe seus testes. Corrija suas cargas.

  5. Agora que seus dados estão corretos, você pode criar modelos de suas páginas de legado.

  6. Criar mapeamentos de URL e visualizar funções para preencher os templates do modelo de dados.

Aproveite o tempo para obter o modelo de dados direita. É realmente importa, porque tudo é muito simples se o seu modelo de dados é sólido.

Outras dicas

Pode ser possível escrever modelos do Django que trabalham com o banco de dados legado (eu fiz isso no passado, ver docs em manage.py inspectdb)

.

No entanto, eu seguir o conselho acima e criar um banco de dados limpo usando convenções Django, e depois migrar os dados mais. I scripts de migração normalmente escrita que escrevem para o novo banco de dados através Django e ler o antigo usando as matérias-Python DB APIs (embora seja possível para amarrar Django para vários bancos de dados simultaneamente , também).

Eu também sugiro dar uma olhada os aplicativos de blogs disponíveis para Django. Se o incluído no Pinax adapte às suas necessidades, vá em frente e usar Pinax como um ponto de partida.

S.Lott resposta ainda é válido após anos, eu tento completar a análise com as ferramentas e formato para fazer o trabalho.

Existem muitas ferramentas Drupal exportação de lá até agora, mas com o mesmo pedido que eu vá para Visualizações Datasource escolher JSON como formato. Este módulo é muito sólido e disponível para a última versão do Drupal. A JSON formato é muito rápido, tanto de análise e codificação e é fácil de ler e muito Python-friendly (< a href = "https://docs.python.org/2/library/json.html" rel = "nofollow noreferrer"> import json ).

Usando Visualizações fonte de dados que você pode criar uma visão nó classificado por ID de nó (nid), mostram um número limitado de elementos por página, configure um caminho de vista, adicionar a ele um identificador de filtro e passar para ele o nid para ler todos os elementos até obter uma resposta JSON vazio.

Ao importar em Django você tem um amplo conjunto de ferramentas, bem como, a partir de loaddata para luminárias de carga . Visualizações Datasource exportados JSON mas não está formatada como Django espera luminárias: você pode escrever uma costume comando admin para fazer a importação, onde você pode ter o controle total do fluxo de importação.

Você pode começar seu comando passando um nid = 0 como argumento e deixar que o procedimento de ler, importação e então buscar os dados a partir da próxima página passando simplesmente a última leitura nid na solicitação HTTP anterior. Você pode até mesmo restringir o acesso ao caminho em vista, mas você precisa de configuração adicional no lado da importação.

Com relação ao desempenho, apenas por exemplo, eu analisado e importados 15.000+ nós em menos de 10 minutos através de um comando de administração de 1,8 personalizado Django em um 8 máquina de 8 núcleos / GB Linux virtual e PostgreSQL como DBMS, registrando sucesso e informações de erro em um modelo customizado para cada nó.

Estes são os princípios para importação / exportação entre estes dois plataforma, para obter informações detalhadas que eu descrevi todo o noreferrer principais passos para a exportação a partir do Drupal e, em seguida, importar para Django neste guia .

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