Closed Kaito-a-bit closed 2 years ago
○問題点 記事の中にある、jsonファイルにDBのバックアップを取るコマンドを実行しようとした所で
django.core.exceptions.FieldError: Unknown field(s) (birthday) specified for User
とのエラーが表示された。
○やったこと・調べたこと
User
モデルのimport先がfrom django.contrib.auth.models
となっていたのでfrom .models
に変更したmodels.py
からUser
モデルの定義を確認した○解決
birthday = models.DateField
...
birthday = models.DateField()
として定義する必要があった。
とします。
バックアップ作成時はモデルBを参照にしているので、DBに存在しないtableにアクセスし、エラーが発生するという状況かと予測されます。
birthdayフィールドが定義されていないです。まずは()
つけましょう!
- 変更前のモデルをA
- 変更後のモデルをB
とします。
- DBはモデルAにより作られています。
- jsonファイルを生成する時はモデルBを参考にします。
バックアップ作成時はモデルBを参照にしているので、DBに存在しないtableにアクセスし、エラーが発生するという状況かと予測されます。
まさにこうなりました。ありがとうございます。 変更後のモデルに対してのマイグレーションはまだ実行されていないので、この後の手順としては
- 変更前のモデルをA
- 変更後のモデルをB
とします。
- DBはモデルAにより作られています。
- jsonファイルを生成する時はモデルBを参考にします。
バックアップ作成時はモデルBを参照にしているので、DBに存在しないtableにアクセスし、エラーが発生するという状況かと予測されます。
まさにこうなりました。ありがとうございます。 変更後のモデルに対してのマイグレーションはまだ実行されていないので、この後の手順としては
- DBの削除
- migrationを実行 の二つだと認識しているのですがあっていますでしょうか?
バックアップ取れているならokです
jsonファイルにバックアップを取る際の参照先モデルを変更するやり方がわからなかったので、django-dbbackupをプロジェクトに追加する形でバックアップを実行した。
○該当ブランチ #2 (最新状態はpush済み)
○やりたいこと
AbstractBaseUser
を拡張する形でカスタムしたい上記を達成する為に、以下の手順で実行しようとした。 参考: 【Django】独自ユーザーモデルの作成(カスタムUserモデル:AbstractBaseUser) Changing to a custom user model mid-project How to Switch to a Custom Django User Model Mid-Project
User
モデルを作成(username
,email
,password
,birthday(追加したいフィールド)
)UserManager
モデルを作成する3までは実行済みで4を実行する前にこのサイトを参考にデータベースのバックアップをとろうとした。