2014-11-05 149 views
1

我想創建腳本(.SH或Python,並不重要),其可以執行以下操作:如何編寫django shell操作腳本?

heroku pg:reset DATABASE_URL 
heroku run python manage.py migrate 
heroku run python manage.py shell 
> from myapp.scenarios import *; reset_demo_data(); exit() 

線1至3是UNIX命令,但第4行是在要執行蟒打開Django shell。

我試着用|>的東西在命令中「注入」python代碼,但沒有任何工作。 我想這很容易做,但我不知道如何..

謝謝。

回答

1

或者你可以試試這個在線解決方案:

echo "from myapp.scenarios import *; reset_demo_data(); exit()" | python manage.py shell 

你可以添加這行代替Shell激活行。

+1

謝謝!我一定要試試這個......我想我錯了。 – 2014-11-05 13:13:49

2

我想最好的選擇是編寫一個custom management command

則腳本可能看起來像:

heroku pg:reset DATABASE_URL 
heroku run python manage.py migrate 
heroku run python manage.py shell 
heroku run python manage.py reset_demo 

當管理命令是一樣的東西:

from django.core.management.base import BaseCommand 
from myapp.scenarios import * 

class Command(BaseCommand): 
    def handle(self, *args, **options): 
     reset_demo_data() 
+1

感謝這個優雅的解決方案。對於簡單的東西,我將使用@wolendranh解決方案,但提醒我可以用這種方式處理它。 – 2014-11-05 13:15:05