問題タブ [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.

0 投票する
3 に答える
5180 参照

django - Django 1.7 での移行

現在、Django 1.7 開発バージョンを使用しているプロジェクトに参加しています。モデルに加えた変更 (フィールドの追加、モデルの削除など) を、「makemigrations」および「migrate」を使用してデータベース スキーマに反映させたいと考えています。アプリケーションのモデルの 1 つに「年齢」フィールドを追加しました。

「makemigrations」コマンドを使用すると、出力は次のようになります---「変更が検出されませんでした」.「makemigrations」はスキーマに加えられた変更を把握できないと思います.どうすれば機能させることができますか??

0 投票する
11 に答える
93794 参照

django - Django 1.7 で移行を簡素化するには?

South についてはすでに同様の質問がありますが、私は Django 1.7 でプロジェクトを開始し、South を使用していません。

開発中に多くの移行が作成されましたが、ソフトウェアはまだ配信されておらず、移行する必要があるデータベースはありません。したがって、現在のモデルが元のモデルであるかのように移行をリセットし、すべてのデータベースを再作成したいと思います。

それを行うための推奨される方法は何ですか?

編集: Django 1.8 の時点で、squashmigrationsという名前の新しいコマンドがあり、ここで説明されている問題を多かれ少なかれ解決します。

0 投票する
2 に答える
1318 参照

python - バージョン 1.6 の Django チュートリアル

このチュートリアルに従おうとしています: https://docs.djangoproject.com/en/dev/intro/tutorial01/

Django 1.6.5 を使用しています。チュートリアルで使用されているバージョンは、私のバージョンとはかなり異なっているようです。たとえばmigrate、 my で使用できる に関連するコマンドはありませんmanage.py。South ライブラリをダウンロードし、syncdb代わりにmigrate. しかし今、チュートリアルでは次のように入力する必要があります。

南にも元のジャンゴにもありません。私は運命ですか?かなり新しいバージョンの Django をインストールする必要がありますか? そうすることはかなり厄介なので、これは私には奇妙に思えます。1.6 のインストールは、インストールが最も簡単です。

0 投票する
0 に答える
51 参照

django - Django -south - 移行内の既存のテーブルを確認しています

一部の移行は、特定の条件が満たされた場合にのみ実行する必要があります。これは主に、南を使用して django.contrib を移行するというバグの性質によるものです。独自のユーザー モデルに変換するときに必要です。しかし、これらの移行は自動的に実行される必要があるため、「--fake」を当てにすることはできませんauth_permissions。たとえば、関係が存在するかどうかに応じて、それらを実行する必要がある場合とそうでない場合があります。移行セクションで south/django orm を使用しforwardて、既存の関係を確認し、移行を実行できif clauseますか?

移行で try/except を使用してみましたが、エラーが発生するようです (現在、それを再現できません。このコードはもうありません)。

どうすればそれを達成できますか?助けてくれてありがとう!

Django 1.6.4 と南 0.8.4 の使用

0 投票する
2 に答える
4352 参照

django - Djangoに「ListField」がないのはなぜですか?

私は、属性を持つ(利点Charfieldと名付けましょう)を持つモデルを持っています。しばらくして、複数の選択肢を選択できるため、このフィールドをある種の に「アップグレード」する必要があると判断しました。choicesListField

私が検索したものから、2つのオプションがあります。

1 - 新しいモデルを作成し、この新しいモデルを参照する最初のモデルで ManyToManyField を使用します。このようにして、admin で使用される「複数選択」デフォルト フィールドがレンダリングされます。人生は素晴らしい。

2-フィールドをある種のセパレーター付きの文字列として保存するカスタムフィールドを作成します。

これらの 2 つのアプローチは、リストを Django モデルに保存する最も効率的な方法は何ですか?にまとめられています。その他の例の 2 番目のアプローチ: How to create list field in djangohttp://cramer.io/2008/08/08/custom-fields-in-django/https://djangosnippets.org/snippets/1200 /https://djangosnippets.org/snippets/1491/

事実: ManyToManyField. これは私が持っている (そして人々に新しいアイテムを追加してほしくない) 選択肢の制御されたリストであり、このためのテーブルを作成するのはやり過ぎだと思います (ただし、このテーブルにフィクスチャを作成し、モデルを に登録することはできませんadmin.py。新しいアイテムを追加することはありません.しかし、フィクスチャでこれらの値を変更すると、移行がどのように機能するかわかりませ.

...そして、新しいカスタム フィールドを作成するかどうかはわかりません。これは、Djangoをアップグレードする際の問題など、その意味がわからないため、長期的には問題のようです.

ビルトインがないのはなぜListFieldですか?私が考えている 2 つのアプローチについて、長期的にはどのような問題があると思いますか? 私は最初のことを計画していますが、移行について少し迷っています。

0 投票する
2 に答える
5944 参照

django - Django 1.7は移行されていないアプリを同期します

私は自分のモデルを始めました:

myapp.models.py

次に./manage.py migrate、新しいプロジェクトを実行しましたが、すべて問題ありませんでした。

次に、モデルを変更しました。

私は./manage.py migrate再び走りましたが、何も起こりませんでした。

新しいアプリを移行するにはどうすればよいですか?

0 投票する
2 に答える
2272 参照

python - Django でモデル フィールドを複製する

モデル フィールドが重複していると問題が発生します (Web ページを実行すると、そのようなテーブル appname_modelname はありません)。./manage.py migrate appname を実行すると、「重複フィールド」が表示されます。私は自分のmodels.pyをチェックしましたが、そこには1つしかありません。その重複したフィールドを削除するにはどうすればよいですか? 私が何をしても、それはとどまるようです。私はもう試した:

  • データベースの削除

  • アプリ フォルダー内の移行フォルダーの削除

  • ./manage.py sqlclear south を実行してから、dbshel​​l に south_migrationhistory テーブルをドロップする

  • ./manage.py schemamigration appname --initial、./manage.py migrate appname --fake

アイデアが尽きた。