レガシーdbからデータをロードする必要がある新しいDjangoプロジェクトで作業していますが、レガシーdbから。Django ORMはレガシーデータベースからデータをロードした後にモデルのプライマリキーを自動設定できません
レガシーdbの主キーの範囲は10000から200000です。新しいdbはPostgres 9.5であり、手動でSQLスキーマを設定することはありません。
私のモデルのような単純なことができます
class MyModel(Model):
id = IntegerField(primary_key=True)
私はMyModel().save()
またはMyModel.create()
を実行すると、この意志が失敗しました。データの読み込み時に使用したのと同じようにMyModel(id=233).save()
を実行しても問題ありません。
私は、主キーの自動生成を開始する場所がわからないためだと思います。これを修正するには?
id = models.AutoField(primary_key=True)
あなたはid
としてそれを名前を付けたい場合は、あなたを:ジャンゴで自動インクリメントフィールドを追加するには
移行後、これは機能します。しかし、docはこれがデフォルトの動作であると言います。これは 'id'フィールドを手動で定義する必要はないということですか? – kxxoling
もう一つの質問ですが、もし私が鍵 'id'を300000から始めるなら、どうすればいいですか? – kxxoling
はい、djangoはデフォルトで 'id' AutoFieldを追加します。 'id'として名前を付ける場合は、手動で追加する必要はありません。 – v1k45