問題タブ [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.2 移行の変更が継続的に検出される
以下に、実行時に変更された変更を継続的に検出するように見えるモデルがありますmakemigrations
。これは Django 1.6.4 の South では当てはまりませんでした。
モデルには、移行にまだ反映されていない変更があるため、適用されません。実行manage.py makemigrations
して新しい移行を作成し、再実行manage.py migrate
して適用します。
モデル:
total_purchased フィールドのバリデーター属性をコメントアウトすることで、これを解決しました。「total_purchased」バリデーターで前のフィールド「capacity」を引き続き参照できる一方で、バリデーターを削除せずにこの問題を回避する方法はありますか? どんな助けでも大歓迎です。
django - 移行中に GenericForeignKey を使用してモデルのインスタンスを作成できない
重要:この質問はもはや関係ありません。
Django 1.7 移行では、次のコードを使用してプログラムでコメント エントリを作成しようとしています。
そして、それはエラーを生成します:
TypeError: 'content_object' is an invalid keyword argument for this function
Comment(content_object=comment.booking)
ただし、シェルで実行すると同じコード (つまり) が機能します。
で空のモデルを作成しnew = Comment()
、必要なすべてのフィールドを手動で設定しようとしましたが、それに応じてフィールドを設定しても、実際content_type
には保存されず、受け取りましたobject_pk
content_type
django.db.utils.IntegrityError: null value in column "content_type_id" violates not-null constraint
移行で一般的な外部キーを使用してモデルを適切に作成する方法はありますか? または回避策はありますか?
python - Django: 移行は削除されたサードパーティ モジュールに依存します
私の django プロジェクトでは、モデルにタグ付け機能を追加するためにdjango-taggitを使用しています。
タグを追加する移行では、最初のtaggit移行も依存関係としてリストされます。
後で、 taggitを含むすべての場所を削除しましINSTALLED_APPS
た。
問題は、django がtaggitに属する移行を解決できず、エラーが発生することです。
このシナリオで推奨されるソリューションは何ですか?
2 段階の戦略を考えることができます。
- プロジェクトを実行しているすべてのサーバーが最新の状態になるまでtaggitを保持します
INSTALLED_APPS
- その後、マイグレーションをスカッシュして、フィールドが表示されないようにしてから、 taggitを削除します。
INSTALLED_APPS
django - 移行は正しく実行されますが、新しい列が作成されません (Django 1.7)
いくつかの移行を実行したい。Web サイトを実行するまで、すべてが正しく実行されているようです。列がありません。手動で修正できますが、移行の実行時に犯した間違いを理解したいです。
これは、列が追加された移行ファイルの一部です。
これらは私が実行しているコマンドです:
この最初のステップでは、meta_title
列が作成され
ます。移行を実行すると、シェルの出力は次のようになります。
この時点で、データベースに meta_title 列が作成されているはずですが、何も起こりませんでした...正しいデータベースにいること、および設定が正しいことは確かです。meta_title 列を手動で作成すると、Web サイトはエラーなしで実行されるためです。
誰か助けてくれませんか?
python - Django 1.7 makemigrations テーブルの名前を None に変更する
いくつかのモデルをあるアプリから別のアプリに移動する必要があり、この回答https://stackoverflow.com/a/26472482/188614の指示に従いました。
基本的に、CreateModel
によって生成されたマイグレーションを使用しpython manage.py makemigrations
、それらを でラップし、古いテーブルの名前で meta オプションをstate_operations
追加しました。
すべて正常に動作し、上のモデルは古いテーブルを正しく使用しています。
しかし、実行すると、次のように名前を変更する各テーブルの移行が作成されます。'db_table'
new_app
python manage.py makemigrations new_app
AlterModelTable
None
これはバグですか、それとも予想される動作ですか?
django - DB への適切な変更を検出するために Django 1.7 Migrations を取得できません。
私は、MySQL データベースでかなりの量のデータを使用して実行している実稼働 Web プロジェクトを持っています。「enterlink」というアプリにいくつかの変更を加えてデータベースを更新しようとしています。既存のモデルに新しい要素を加え、完全に新しいモデルを作成しました。この移行の前に、最初にsyncdbを実行して作成して以来、dbのスキーマに触れたことはありませんでした。「python manage.py makemigrations enterlink」を実行すると、以下の出力が表示されます(pic)。私の質問は、なぜこれが起こっているのですか?DB には、図にリストされているすべてのモデルが既に含まれているのに、なぜそれらのモデルのリストを登録しているのでしょうか? 「python manage.py migrate」または「python manage.py migrate --fake enterlink」を実行して移行を完了すると(写真は再び)、出力が表示されますが、データベース スキーマは古いデータベースと同じままで、新しいコードはエラーを生成します。誰が問題の可能性が高いか教えてもらえますか? どんなアドバイスでも本当に感謝しています。何が欠けているのかわからないので、とてもイライラしています。
python - django 1.7.3/postgres migrations を使用してデータベースにデフォルトの列値を設定するには?
列のデフォルト値はORMレイヤーのみにあり、実際にはDBにデフォルト値を設定していないようです。同時に、たとえば ID キーにはデータベースにデフォルトの修飾子があり、それが可能であることがわかりますが、方法はわかりませんか?
コード例:
次のテーブルを作成します。
モディファイアで移行を設定する方法はありdefault current_timestamp
ますか? created_at
そうでない場合、生の SQL 移行を渡す方法はありますか? データベースが他のプロセス (バッチ プロセスなど) で使用されているため、アプリケーション層でデフォルト値などを強制する必要がないため、必要です。