問題タブ [django-migrations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 移行時にアプリの依存関係を指定する
Django 1.7 に初期データを追加しようとしていますが、データ移行の使用が推奨されていることを読みました。
「0001_groups」という名前の移行ファイルを正しく作成しました。このファイルでは、いくつかcontrib.auth
のグループと権限を作成します。
問題は、auth
移行が実行される前に実行されることです。
アプリの最後の移行のauth
名前ではないものを探しに行きましたが、それは0005_alter_user_last_login_null.py
. だから私は試してみました:
しかし、私は得る:
KeyError: u"Migration appname.0001_groups の依存関係が、存在しない親ノードを参照しています ('auth', '0005_alter_user_last_login_null')"
私はそのエラーをグーグルで検索しましたが、それは常に Django の 11 か月前に修正されたバグにリンクしています。
auth
アプリの依存関係を正しく指定するにはどうすればよいですか?
python - Django - Cannot create migrations for ImageField with dynamic upload_to value
I just upgraded my app to 1.7 (actually still trying).
This is what i had in models.py:
When i try to makemigrations
, it throws:
python - Django 1.7 - makemigrations が変更を検出しない - 管理モデル
仮想環境にdjango 1.7をインストールしました。
次に、次のファイルを手動で作成しました。
だから私は設定ファイルservice_bus/django_settings.py
とservice_bus
アプリを持っています。
次に、bashで次のようにしました。
次に、makemigrations を実行しようとしましたが、変更が検出されないと表示されます。
私のすべてのモデルで、次のようなものがあります
何が欠けている可能性がありますか?
django - django 1.7移行で「テーブルが既に存在します」というエラーが発生します
移行を適用しようとしていますが、次のエラーが表示されます。
django.db.utils.OperationalError: (1050、「テーブル 'customers_customer' は既に存在します」)
次のコマンドを発行してこれを取得します。
私の顧客テーブルは既に存在します。移行にこれを知らせ、エラーを出さず、モデルに変更を加えるにはどうすればよいですか?
ローカルデータベースを使用してローカル環境でこれを問題なく実行しました。migrate
このエラーが発生するのは、データベースを本番環境に向けて実行したときです。
django - 既存のテーブルのdjango 1.7 makemigrations
新しいプロジェクトに Django 1.7 を使用したいと考えています。私はすでに多くのレコードを持つデータベースを持っています。
多くの Django チュートリアルでは、新しいプロジェクトから移行システムを使用する方法を示しています。
私の場合、django-admin startapptodo
を使用し、という名前の既存のテーブルを使用しますnotesnote
。inspectdb を使用してnotesnote
クラスをダンプし、それを書き込みますtodo/models.py
その後
todo/migrations/0001_initial.py
次に生成する
偽の移行を行います (テーブルが既に存在しているため)。
次に、テーブルのフィールドを修正したい場合は、「カテゴリ」フィールドを追加します
次に、次の方法で 0002 移行差分を生成します。
ただし、移行を行うと
以下のようなエラーが出ました。
django.db.utils.OperationalError: そのようなテーブルはありません: todo_notesnote
既存のテーブルの前にアプリの名前を追加しているようです。既存のテーブルで使用可能な移行を行うには、どの手順を実行する必要がありますか?
python - Django 1.7 でのクラスメソッドのシリアル化
Django 1.7 で実行しようとするとmanage.py makemigrations
、次のエラーが発生します。
get_default
で定義されているメソッドに問題があるようJobConfiguration
です。その定義は以下で繰り返されます。
エラー メッセージで提供されたリンクをたどると、「クラス参照」のシリアル化がサポートされている機能のようです。
「クラス参照」は と同じ@classmethod
ですか?
「モジュールの最上位スコープ」に「クラス参照」を配置するにはどうすればよいですか?
移行によってメソッドを追跡する必要があるのはなぜですか? 私は、移行はデータベース スキーマ用であり、クラスで使用されるメソッドのタイプではなく、格納されているデータのタイプのみを追跡するものであると想定していました。
興味深いことに、get_default
以下で繰り返されるように の定義を静的メソッドに変更すると問題は解決しますが、JobConfiguration
クラス名をハードコーディングする必要があります。
(いくつかのコンテキスト: このメソッドは、作成されたこれらのフィールドごとに新しい JobConfiguration を作成する効果を持つJobConfiguration.get_default
内から参照されています。)models.OneToOneField(JobConfiguration, default=JobConfiguration.get_default)
django-testing - テストでは移行が失敗するのに、移行では失敗しないのはなぜですか?
私は Django==1.7 を使用しており、4 つのアプリケーションがあります。
アプリの設定は次のようになります。
データベースの設定は次のとおりです。
私のアプリケーションには移行とテストがあります:
問題を絞り込むために、多くのファイルが省略されました (必要に応じて、より多くのファイルを使用して質問を拡張しますmodels.py
) views.py
。
の内容は次の0002_install_data.py
とおりです。
manage.py migrate
データベースをインストールするために実行すると、すべてが期待どおりに機能します。
テストを実行する場合manage.py test
、最初のステップはテスト データベースのインストールです。何か奇妙なことが起こります:
最初に実行される移行は 0002_install_data です。他のテーブルは作成されず (例: auth テーブル、geo テーブル、game テーブル、fandjango テーブルなど)、移行 0001_initialpeople
は実行されません。
/li>このような理由で、依存エラーが発生します0002_install_data
(0001_initial
存在しないと表示されます)。
なぜこれが起こっているのでしょうか?test
コマンドがアプリケーションの移行を正しく調整しないのはなぜですか? (これは では発生しませmanage.py migrate
ん)。
django - Django 1.7 移行で未定義のクラス
古い移行に、もはや定義されていないクラスまたはモジュールへの参照が含まれているという問題が発生しています。これらの問題を解決する最善の方法は何ですか?
これらの参照を削除するだけでエラー メッセージを取り除くことができますが、移行を中断するとどうなりますか?
また、Django 1.7 への移行が実際に私のコードベースの一部をインポートするのは少しおかしいと思うのは私だけでしょうか?
エラー メッセージの例:
この場合、UserPersonMixin は、このモデルが継承していた抽象基本クラスですが、最近再編成中に破棄しました。