質問

既存のDrupalサイトをDjangoアプリケーションに移植する最良の方法は何ですか? 約500ページ(主に書籍モジュール)と約50のブログ投稿があります。サードパーティのモジュールを使用していません。 (SEOの目的で)現在のURLを保持し、データベースをDjangoに移行したいと思います。簡単なブログアプリケーションを作成するので、ブログの投稿を移行しても大丈夫です。 Djangoで500ページ以上を提供する最良の方法は何でしょうか? Adminを使用して新しいページを編集/追加したい。

役に立ちましたか?

解決

すべてのDjango開発は同様であり、あなたのパターンはパターンに適合します。

  1. 書籍およびブログ投稿のDjangoモデルを定義します。

  2. Djangoの組み込みテスト機能を使用して、そのモデルを単体テストします。

  3. いくつかの小さなユーティリティを作成して、レガシーデータをDjangoにロードします。この時点で、Djangoモデルが完璧ではないことに気付くでしょう。良い。修理する。テストを修正します。負荷をやり直します。

  4. モデルのデフォルトの管理インターフェースを設定します。この時点で、管理インターフェイスの調整に時間を費やします。データモデルが間違っていることに気付くでしょう。それは良いことです。モデルを修正します。テストを修正します。負荷を修正します。

  5. データが正しいので、レガシーページからテンプレートを作成できます。

  6. URLマッピングを作成し、データモデルからテンプレートを作成する関数を表示します。

時間をかけてデータモデルを正しく取得します。データモデルが安定している場合、他のすべては非常に単純であるため、本当に重要です。

他のヒント

レガシーデータベースで動作するDjangoモデルを作成できる場合があります(これは過去に行ったことがあります。 manage.py inspectdb のドキュメントを参照してください)。

ただし、上記のアドバイスに従い、Djangoの規則を使用してクリーンなデータベースを設計し、データを移行します。私は通常、Djangoを介して新しいデータベースに書き込み、未加工のPython DB APIを使用して古いデータベースを読み取る移行スクリプトを作成します(Djangoを複数のデータベースを同時に)。

また、Djangoで利用可能なブログアプリを確認することをお勧めします。 Pinax に含まれているものがニーズに合っている場合は、Pinaxを出発点として使用してください。

S.Lottの回答は数年後も有効です。ツールと形式を使用して分析を完了しようとしています仕事。

今では多くのDrupalエクスポートツールがありますが、同じリクエストで Viewsにアクセスしますデータソース形式としてJSONを選択します。このモジュールは非常に堅牢で、Drupalの最新バージョンで使用できます。 JSON 形式は、解析とエンコードの両方で非常に高速で、読みやすく、Pythonに非常に適しています(< a href = "https://docs.python.org/2/library/json.html" rel = "nofollow noreferrer"> jsonをインポート)。

Views Datasourceを使用すると、ノードID(nid)でソートされたノードビューを作成し、ページごとに制限された数の要素を表示し、ビューパスを構成し、それにフィルター識別子を追加してnidを渡してすべての要素を読み取る空のJSON応答を取得するまで。

Djangoにインポートする場合、フィクスチャをロードするロードデータ。 Views DatasourceはJSONをエクスポートしましたが、Djangoがフィクスチャを期待するようにフォーマットされていません:インポートを実行するカスタム管理コマンド。インポートフローを完全に制御できます。

引数としてnid = 0を渡してコマンドを開始し、プロシージャに次のページからデータを読み取らせ、インポートしてフェッチさせ、前のHTTPリクエストで読み取った最後のnidだけを渡すことができます。ビュー上のパスへのアクセスを制限することもできますが、インポート側で追加の構成が必要です。

たとえば、8コア/ 8 GB Linux仮想マシンのDjango 1.8カスタム管理コマンドと PostgreSQL をDBMSとして、成功およびエラー情報を各ノードのカスタムモデルに記録します。

これらは、これら2つのプラットフォーム間のインポート/エクスポートの基本です。詳細については、このガイドのDrupalからエクスポートしてからDjangoにインポートする主な手順

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top