問題タブ [django-south]
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アプリの主キーを変更するための最良のアプローチは何ですか?
ベータモードのアプリケーションがあります。このアプリのモデルには、明示的なprimary_keyを持ついくつかのクラスがあります。結果として、Djangoはフィールドを使用し、IDを自動的に作成しません。
それは悪い考えだったと思います(django adminでオブジェクトを保存するときのUnicodeエラーを参照)。戻ってモデルのすべてのクラスのIDを取得したいと思います。
モデルに変更を加え(すべてのprimary_key=Trueをdb_index=Trueに置き換えます)、データベースをsouthに移行したいと思います。
残念ながら、移行は次のメッセージで失敗します。
ValueError: You cannot add a null=False column without a default value.
この問題のさまざまな回避策を評価しています。助言がありますか?
ご協力いただきありがとうございます
django - Django South のデータ移行が 2 回実行されています
移行があります:
しかし、移行を実行すると、ループが 2 回実行されます。
python - syncdbの後にモデルにAdminクラスを追加するにはどうすればよいですか?
models.pyにいくつかのモデルを追加し、テキストフィールドでwysiwyg-editorを使用するためのadminクラスを追加したいと思います。
ええと、Django自体が移行をサポートしておらず、Southを使用したことは知っていますが、どちらも機能しません。
サウスは変化を「見ない」。
Southはフィールドへの変更を検出するだけで、新しいクラスを追加した場合は検出されない可能性がありますか?
Djangoを微調整してそのような変更を検出するにはどうすればよいですか?
java - DjangoのSouthのようなデータベーススキーマの変更に相当するJava?
データベース スキーマの変更を追跡および管理するために、South を使用して Django プロジェクトに取り組んでいます。Google Web Toolkit を使用して新しい Java プロジェクトを開始していますが、同等のツールがあるかどうか疑問に思っています。知らない人のために、サウスが何をしているのかを以下に示します。
- Python データベース モデルへの変更を自動的に認識する (列、テーブルなどの追加/削除)
- これらの変更をデータベースに適用する SQL ステートメントを自動的に作成する
- 適用されたスキーマの移行を追跡し、順番に適用します
- Python コードを使用したデータ移行を許可します。たとえば、Python の split() 関数を使用して、名前フィールドを名と姓のフィールドに分割します。
Java ORM はまだ決めていませんが、Hibernate が最も人気があるようです。私にとって、データベース スキーマを簡単に変更できることは重要な要素です。
django - Django 1.2 と南の問題
私はpython 2.5とdjango 1.0.2を使用していました。しかし、最近 python 2.6 と django 1.2 に移行したため、移行中に次のエラーが発生しました。
移行を数回実行した後、最終的に合格します。移行中の 5 つの異なるアプリがあり、依存関係の問題である可能性があると考えました。しかし、他のアプリを呼び出す移行はありません。では、何が問題になるのでしょうか?
よろしく、アルシャフスキー・アレクサンダー。
python - Djangoの移行-プロジェクトの途中でSouthを使用することは可能ですか?
私はすでにプロジェクトを開始しましたが、モデルはすべて同期されており、すべてが同期されています。
django - カスタムフィールドを持つpksを参照するDjangoSouth外部キー
MySQL big intを使用するレガシーデータベースを使用しているので、これを処理するための単純なカスタムモデルフィールドを設定します。
これは、id /pkフィールド(mysql desc "| id | bigint(20)| NO | PRI | NULL | auto_increment |")のdjango southで正常に機能しますが、他のモデルのForeignKeyフィールドはint(11)として作成されます。 )bigint(20)ではなく。
BigAutoFieldにイントロスペクションルールを追加する必要があると思いますが、ドキュメント( http://south.aeracode.org/docs/customfields.html )にはこの種のルールについての言及がないようです。
更新:現在、Django1.1.1とSouth0.6.2を使用しています
アップデート2: Djangoコードが原因のようです。
django.db.models.fields.related.ForeignKey.db_type()から:
AutoFieldをオーバーロードしているため、isinstanceはTrueを返し、デフォルトでIntegerFieldになっています。AutoFieldコードをコピーして、そのようにする必要があると思います。。。
python - django + south + python:関数のパラメーターとして受け取ったテキスト文字列を使用したときの奇妙な動作
これが私の最初の質問です。
django(南移行)でSQLクエリを実行しようとしています:
私はこの関数を次のように使用します:
したがって、次のようにする必要があります。
- 最大の既存のIDまたは0を検索します(クラッシュします)
- シーケンス名を作成する
- シーケンスを作成する
- シーケンスを使用するようにIDフィールドを更新します
- IDをPKとして更新します
しかし、クラッシュし、エラーは次のようになります。
便宜上、ファイルパスを短くしました。
その「E'accounting_delegation'」はどういう意味ですか?どうすればそれを取り除くことができますか?
ありがとうございました!
カルロス。
python - South/Django の問題: Django アプリを認識しない
マシンに Django プロジェクトがあり、South を使用してデータ スキーマを移行しようとすると、奇妙なエラーがいくつか発生します。例:
$ python manage.py convert_to_south thisLocator
/Library/Python/2.6/site-packages/registration/models.py:4: DeprecationWarning: sha >モジュールは非推奨です。import sha /Users/cm/code/thisLocator/../thisLocator/batches/models.py:6: DeprecationWarning: the md5 >module is deprecated; 代わりに hashlib モジュールを使用してください。md5 をインポートする代わりに hashlib を使用する
「thisLocator」に一致する有効なアプリケーションはありません。
私は南のドキュメントに従いました。Settings.py はインストール済みのアプリに含まれています。manage.py シェルから import south を実行できます。私のチームの他の全員がアプリを thisLocator と呼んでいます。
私は本当に愚かなことをしていますか?
python - Django 1.2 + South 0.7 + django-annoying の AutoOneToOneField が TypeError: 'LegacyConnection' object is not iterable につながる
South 0.7 の Django 1.2 トランクと、django-annoying からコピーされた AutoOneToOneField を使用しています。South は、フィールドにルールが定義されておらず、South の新しいバージョンには自動フィールド タイプ パーサーがなくなっていると不満を漏らしました。そこで私は South のドキュメントを読み、次の定義を書きました (基本的には OneToOneField ルールの正確なコピーです)。
スキーママイグレーションを実行すると、South で次のエラーが発生します。
これは Django 1.2 トランクの最近の変更に関連していますか? これを修正するにはどうすればよいですか?
このフィールドを次のように使用します。
参照用に、django-tagging のフィールド コード: