2014-11-05 139 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