テーブルを繰り返し削除し、それらを再作成して、開発環境にデータを入力する代わりに、これを行うという名前のbashスクリプトを作成することにしreset_db
ました。私はテーブルを叩き、それらを再作成しました。しかし、django orm からのデータをテーブルに取り込むことはできません。
これを行うには、スクリプトから django シェルを呼び出し、ORM コマンドを実行してテーブルにデータを入力します。しかし、django シェル コマンドが実行されていないようです。
django orm コマンドをシェルで手動/直接実行しようとしましたが、正常に実行されましたが、bash スクリプト内からは実行されませんでした。
私が得るエラーは次のとおりです。
NameError: name 'User' is not defined
NameError: name 'u1' is not defined
NameError: name 'm' is not defined
これが私のスクリプトです:
#!/bin/bash
set +e
RUN_ON_MYDB="psql -X -U user --set ON_ERROR_STOP=on --set AUTOCOMMIT=off rcamp1"
$RUN_ON_MYDB <<SQL # Whack tables
DROP TABLE rcamp_merchant CASCADE;
DROP TABLE rcamp_customer CASCADE;
DROP TABLE rcamp_point CASCADE;
DROP TABLE rcamp_order CASCADE;
DROP TABLE rcamp_custmetric CASCADE;
DROP TABLE rcamp_ordermetric CASCADE;
commit;
SQL
python manage.py syncdb # Recreate tables
python manage.py shell <<ORM # Start django shell. Problem starts here.
from rcamp.models import Customer, Merchant, Order, Point, CustMetric, OrderMetric
u1 = User.objects.filter(pk=5)
m = Merchant(u1, full_name="Bill Gates")
m
ORM
私はdjangoとシェルスクリプトの両方が初めてです。ご協力いただきありがとうございます。