1

django バージョン 1.2 と python 2.4 でプロジェクトを開発しました。ここで、プロジェクトを最新バージョン (Django1.4 および python2.7) に移行します。

私は移行に非常に慣れていません。誰でもこれについてアドバイスできますか。

どのようなことに注意する必要がありますか? すべてのコードをもう一度書き直す必要がありますか?

4

4 に答える 4

2

これが私たちが行っていることです(〜60KlocをDjango 0.97から1.4にアップグレードしています):

  • コードのアップグレードブランチを作成します
  • アップグレードに取り組むためのvirtualenvを作成します
  • 「次の」バージョンのDjango(小さな手順が必要な場合)または最終的に使用するDjangoバージョンをダウンロードして、独自のバージョン管理システム(VCS)に配置します。
  • VCSからvirtualenvのルートまでDjangoをチェックしてください。
  • 完了するまで繰り返します:
    • テストスイート(およびカバレッジ)を実行します。
    • 問題を修正する
  • ルート__init__.pyファイルに、コードが動作するDjangoバージョンを示すコメントを追加します(これにより、1日で多くの時間を節約できます:-)
  • トランクをアップグレードブランチにマージします(アップグレードの作業中に発生したすべての変更を取得するため)。
  • テストスイートを実行し、問題を修正してから、マージをチェックインします。
  • 最後に、アップグレードブランチをトランクに再統合します。

これでコードがアップグレードされました(アップグレードの展開を計画する必要がありますが、それは別の質問です)。

ps:DjangoをVCSに保存するので、Django自体に加える必要のある変更を追跡できます(特に1.4に移行したくない場合は必要ですが、そのバージョンから1つか2つの修正が必要になる場合があります)。

于 2012-08-14T15:37:48.070 に答える
0

最初にローカルで実行してください。間違いなく問題が発生し、それに応じて変更されます。私は推測しますが、コードの多くを変更する必要はありません。Django については、 Django 1.3 のリリース ノートDjango 1.4のリリース ノートを読み、以前の Django バージョンと比較して非推奨になったものに特に注意してください (1.2 だけでなく、アプリでも Django 1.0/1.1 の機能を使用している可能性があるため)。私の経験では、これらは主に設定の変更と、プロジェクト構造のいくつかの小さな変更です。

Python 2.4 -> Python 2.7 については、あまり言えません。古い機能をどれだけ使用したかによって異なります。アプリケーション全体をテストするとわかります。全然問題ないかも。

于 2012-08-14T06:55:09.390 に答える
0

virtualenv を使用している場合は、必要なバージョンの django/python で新しい virtualenv を作成し、この virtualenv で作業して、それに対してテストスイートを実行します。

ところで、Django のコンテキストでは「移行」という言葉に注意する必要があるかもしれません。移行とは、通常、データベース内のテーブルに変更を加える場合、South を使用したモデルの移行を指します。

于 2012-08-14T07:11:08.173 に答える
-1

Python は下位互換性をサポートしていません。2.4 から 2.7 に移行する際に問題が発生する可能性があることを考慮してください。

于 2012-08-14T06:21:37.747 に答える