これは Django を使った最初のプロジェクトです。その結果、毎日モデルの処理方法について新しいことを学んでいるようです。このため、私のデータベースは毎日変化しています。データベースを更新するたびに、データベースを削除して作成し、syncdb を実行してから、ユーザー データを入力する必要があります。このプロセスを Python スクリプトで自動化して、データベースを頻繁に再作成する手間を省きたいと考えていました。
INSERT コマンドを実行しようとすると、MySQL から列 first_name にデフォルト値がないことが通知されます。ソース (https://github.com/django/django/blob/master/django/contrib/auth/models.py) をざっと見てみると、クラス User は間違いなく first_name 列のデフォルト値を定義しています。他の多くと同様に。このエラーが発生する理由は誰ですか?
スクリプトの関連部分は次のとおりです。
import MySQLdb, os
from django.core.management import call_command
os.environ['DJANGO_SETTINGS_MODULE'] = "DatingWebsite.settings"
db = MySQLdb.connect(user = "project", passwd = "project")
c = db.cursor()
try:
c.execute("DROP DATABASE projectdb;")
except:
pass
finally:
c.execute("CREATE DATABASE projectdb;")
call_command('syncdb', interactive=False)
c.execute("USE projectdb;")
c.executemany("""INSERT INTO auth_user (id, username, email, password)
VALUES (%s, %s, %s, %s)""",
[
(1, 'bob', 'bob@gmail.com', 'pbkdf2_sha256$10000$A3ww6NUZ8TmS$5UA2sXCMS6x7uIGKe20hDckmisBY/rGUK7aye/tMUIw='),
] )
助けてくれてありがとう