是否可以从python脚本进行迁移?
我试图在没有外壳的Heliohost上使用django,但可以使用python脚本。
something like
from django import shell
shell.main(['mysite/manage.py', 'migrate'])
编辑
使用来自@Shadow的输入,我尝试将这段代码放入views.py文件中
def migrate(request):
django.setup()
from django.core.management import call_command
call_command("migrate", interactive=False)
return HttpResponse("Final Migration Successful")
然后访问映射到要迁移的URL,并返回“最终迁移成功”
然后我尝试了数据库
from .models import Question
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
给我错误:
(1146, "Table 'usr_mydb.polls_question' doesn't exist")
从Django教程中:
绕过manage.py
如果您不想使用manage.py,那没问题。只需将DJANGO_SETTINGS_MODULE环境变量设置为mysite.settings,启动一个普通的Python shell并设置Django:
>>> import django
>>> django.setup()
如果这引发AttributeError,则您可能使用的是与本教程版本不匹配的Django版本。您将要切换到较旧的教程或较新的Django版本。
您必须从manage.py所在的目录运行python,或者确保该目录位于Python路径上,以便导入mysite起作用。
有关所有这些的更多信息,请参见django-admin文档。
但是,文档中却无处可python manage.py <command>
使用django.setup()
。
您可以使用call_command运行django manage命令。
这是一个使用它调用迁移的示例。
from django.core.management import call_command
call_command("migrate", interactive=False)
我有,interactive=False
因为它在连续集成服务器上运行-但是根据您的用法,您可能希望省略它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句