問題タブ [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.
django - Django 1.7 での移行
現在、Django 1.7 開発バージョンを使用しているプロジェクトに参加しています。モデルに加えた変更 (フィールドの追加、モデルの削除など) を、「makemigrations」および「migrate」を使用してデータベース スキーマに反映させたいと考えています。アプリケーションのモデルの 1 つに「年齢」フィールドを追加しました。
「makemigrations」コマンドを使用すると、出力は次のようになります---「変更が検出されませんでした」.「makemigrations」はスキーマに加えられた変更を把握できないと思います.どうすれば機能させることができますか??
django - Django 1.7 で移行を簡素化するには?
South についてはすでに同様の質問がありますが、私は Django 1.7 でプロジェクトを開始し、South を使用していません。
開発中に多くの移行が作成されましたが、ソフトウェアはまだ配信されておらず、移行する必要があるデータベースはありません。したがって、現在のモデルが元のモデルであるかのように移行をリセットし、すべてのデータベースを再作成したいと思います。
それを行うための推奨される方法は何ですか?
編集: Django 1.8 の時点で、squashmigrationsという名前の新しいコマンドがあり、ここで説明されている問題を多かれ少なかれ解決します。
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 のインストールは、インストールが最も簡単です。
django - Django -south - 移行内の既存のテーブルを確認しています
一部の移行は、特定の条件が満たされた場合にのみ実行する必要があります。これは主に、南を使用して django.contrib を移行するというバグの性質によるものです。独自のユーザー モデルに変換するときに必要です。しかし、これらの移行は自動的に実行される必要があるため、「--fake」を当てにすることはできませんauth_permissions
。たとえば、関係が存在するかどうかに応じて、それらを実行する必要がある場合とそうでない場合があります。移行セクションで south/django orm を使用しforward
て、既存の関係を確認し、移行を実行できif clause
ますか?
移行で try/except を使用してみましたが、エラーが発生するようです (現在、それを再現できません。このコードはもうありません)。
どうすればそれを達成できますか?助けてくれてありがとう!
Django 1.6.4 と南 0.8.4 の使用
django - Djangoに「ListField」がないのはなぜですか?
私は、属性を持つ(利点Charfield
と名付けましょう)を持つモデルを持っています。しばらくして、複数の選択肢を選択できるため、このフィールドをある種の に「アップグレード」する必要があると判断しました。choices
ListField
私が検索したものから、2つのオプションがあります。
1 - 新しいモデルを作成し、この新しいモデルを参照する最初のモデルで ManyToManyField を使用します。このようにして、admin で使用される「複数選択」デフォルト フィールドがレンダリングされます。人生は素晴らしい。
2-フィールドをある種のセパレーター付きの文字列として保存するカスタムフィールドを作成します。
これらの 2 つのアプローチは、リストを Django モデルに保存する最も効率的な方法は何ですか?にまとめられています。その他の例の 2 番目のアプローチ: How to create list field in django、http://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 つのアプローチについて、長期的にはどのような問題があると思いますか? 私は最初のことを計画していますが、移行について少し迷っています。
django - Django 1.7は移行されていないアプリを同期します
私は自分のモデルを始めました:
myapp.models.py
次に./manage.py migrate
、新しいプロジェクトを実行しましたが、すべて問題ありませんでした。
次に、モデルを変更しました。
私は./manage.py migrate
再び走りましたが、何も起こりませんでした。
新しいアプリを移行するにはどうすればよいですか?
python - Django でモデル フィールドを複製する
モデル フィールドが重複していると問題が発生します (Web ページを実行すると、そのようなテーブル appname_modelname はありません)。./manage.py migrate appname を実行すると、「重複フィールド」が表示されます。私は自分のmodels.pyをチェックしましたが、そこには1つしかありません。その重複したフィールドを削除するにはどうすればよいですか? 私が何をしても、それはとどまるようです。私はもう試した:
データベースの削除
アプリ フォルダー内の移行フォルダーの削除
./manage.py sqlclear south を実行してから、dbshell に south_migrationhistory テーブルをドロップする
./manage.py schemamigration appname --initial、./manage.py migrate appname --fake
アイデアが尽きた。