我正在尝试从1.4升级到Django 1.8
我试图在vagrant环境中运行以下命令并得到此错误。
通过vagrant ssh [app]命令登录应用程序后执行命令。 然后设置虚拟环境,然后发生这种情况。
$ python manage.py makemigrations [app_name]
追踪(最近一次通话): 文件" manage.py",第9行,in execute_from_command_line(sys.argv中) 文件" / srv / www / [project] /shared/env/local/lib/python2.7/site-packages/django/core/management/ init .py",第338行,在execute_from_command_line中 utility.execute() 文件" / srv / www / [project] /shared/env/local/lib/python2.7/site-packages/django/core/management/ init .py",第330行,执行中 self.fetch_command(子命令).run_from_argv(self.argv) 文件" / srv / www / [project / shared / env / local / lib / python2.7 / site-packages / django / core / management / base.py",第390行,在run_from_argv中 self.execute(* args,** cmd_options) 文件" / srv / www / [project] /shared/env/local/lib/python2.7/site-packages/django/core/management/base.py" ;,第441行,执行中 output = self.handle(* args,** options) 文件" / srv / www / [project] /shared/env/local/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py" ;,第143行,句柄 self.write_migration_files(改变) 文件" / srv / www / [project] /shared/env/local/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py" ;,第165行,在write_migration_files中 os.mkdir(migrations_directory) OSError:[Errno 13]权限被拒绝:' / vagrant / code / [project] / [app] / migrations'
答案 0 :(得分:2)
您不必使用sudo或root用户来进行迁移。
我认为sorl.thumbnail试图将其迁移到受保护的文件夹(也许是Python网站包?),这使得这些东西不太便于移植。
因此,为了克服这个问题,首先在项目中创建一个名为" sorl_thumbnail"的目录。然后包含一个空白__init __.py文件。
MyProject
|_MyApp1
| |_migrations
| |___init__.py
|
|_sorl_thumbnail
|___init__.py
最后在settings.py中添加这些行:
MIGRATION_MODULES = {
'thumbnail': 'sorl_thumbnail.migrations',
}
多数民众赞成!
现在你应该可以运行:
makemigrations thumbnail
migrate thumbnail
现在,您应该可以在本地项目中找到迁移" sorl_thumbnail / migrations "文件夹中。
答案 1 :(得分:0)
您应该以管理员或root身份登录计算机。如果您不确定,请尝试在控制台/终端上使用sudo命令:
sudo python manage.py makemigrations [app_name]