DjangoシェルとPythonを使って複数のレコードをデータベースに一括挿入する
|
ページネーションなどのフロントサイドのパーツが正常に動いているか目視で確認したいなぁと思い、ダミーのレコードをデータベースに流し込むことにしました。
一つずつ挿入するのは大変なので、スクリプトを作って100個ほどスパーンと一気に流し込みます。
スクリプトの作成
manage.py と同じ場所に適当な名前で次のようなPythonファイルを作りました。
forループで100個ほど情報を生成し、対象のDBのレコードに流し込む単純なスクリプトです。
from django.contrib.auth import get_user_model
from wantedly_app.models import Profile
User = get_user_model()
def insert_user_records():
for i in range(1, 100):
username = f'mob_user{i}'
email = f'mob_user{i}@super.mobuser.mail.com'
password = 'hogehoge'
u = User.objects.create_user(username, email, password)
u.profile.gender = 'male'
u.profile.birth_date = '2000-01-01'
u.save()
Djangoシェルでスクリプトを実行
Djangoシェルを起動して、先ほど作成したスクリプトをインポートすると、勝手にレコードを挿入してくれます。
python manage.py shell
>>> from insert_records import *
まとめ
大量のレコード挿入もこれで楽チンです。やったね!
しかし1件ずつレコードsave()しているので、処理が重たいです。バルクインサートができないか調べてみます。