我決定創建一個名爲reset_db
的bash腳本,而不是重複刪除我的表,重新創建它們並填充我的dev en中的數據。我得到它來摧毀桌子,重新創建它們。但是它無法使用django orm的數據填充表格。我怎樣才能從bash腳本運行django shell命令
我嘗試通過從腳本調用django shell然後運行ORM命令來填充我的表。但似乎django shell命令沒有運行。
我試着手動/直接在shell中運行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和外殼腳本。謝謝你的幫助。
很酷!我會試試這個。 – user1339036 2013-03-01 03:22:20