权限被拒绝在流氓的Django应用程序中创建迁移文件夹 [英] Permission denied to create migration folder in Django app in vagrant

查看:115
本文介绍了权限被拒绝在流氓的Django应用程序中创建迁移文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图从1.4升级到Django 1.8

我试图在vagrant环境中运行以下命令并得到这个错误。



通过vagrant ssh [app]命令登录到应用程序后,命令。
然后设置虚拟环境,然后发生这种情况。



$ python manage.py makemigrations [app_name]



追溯(最近呼叫最后):
文件manage.py,第9行,
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] / shar ed / 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'

解决方案

你不必使用sudo或root来使迁移工作。



我觉得sorl.thumbnail试图把它迁移到一个受保护的文件夹(Python site-packages or packages?),这使得事情不是很便携。



所以要克服这个问题,首先创建一个目录在您的项目中称为sorl_thumbnail,然后包含一个空白__init __.py文件。

  MyProject 
| _MyApp1
| | _migrations
| | ___ init__.py
|
| _sorl_thumbnail
| ___ init__.py

最后在设置中添加这些行.py:

  MIGRATION_MODULES = {
'thumbnail':'sorl_thumbnail.migrations',
}

这是它!



现在你应该能够运行:

  makemigrations thumbnail 
迁移缩略图

迁移现在可以在本地项目的 sorl_thumbnail / migrations文件夹中找到。


I am trying to upgrade to Django 1.8 from 1.4

I tried to run the following command in vagrant environment and got this error.

Ran the command after logging into the app via vagrant ssh [app] command. Then setup the virtual env and then this happens .

$ python manage.py makemigrations [app_name]

Traceback (most recent call last): File "manage.py", line 9, in execute_from_command_line(sys.argv) File "/srv/www/[project]/shared/env/local/lib/python2.7/site-packages/django/core/management/init.py", line 338, in execute_from_command_line utility.execute() File "/srv/www/[project]/shared/env/local/lib/python2.7/site-packages/django/core/management/init.py", line 330, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/srv/www/[project/shared/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv self.execute(*args, **cmd_options) File "/srv/www/[project]/shared/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute output = self.handle(*args, **options) File "/srv/www/[project]/shared/env/local/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py", line 143, in handle self.write_migration_files(changes) File "/srv/www/[project]/shared/env/local/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py", line 165, in write_migration_files os.mkdir(migrations_directory) OSError: [Errno 13] Permission denied: '/vagrant/code/[project]/[app]/migrations'

解决方案

You don't have to use sudo or be root to make the migrations work.

I think sorl.thumbnail was trying to write it's migrations to a protected folder (Python site-packages perhaps?) which made things not very portable.

So to overcome the issue first create a directory in your project called "sorl_thumbnail" then include a blank __init __.py file.

MyProject
|_MyApp1
| |_migrations
| |___init__.py
|
|_sorl_thumbnail
  |___init__.py

finally add these lines somewhere in settings.py:

MIGRATION_MODULES = {
    'thumbnail': 'sorl_thumbnail.migrations',
}

Thats it!

Now you should be able to run:

makemigrations thumbnail
migrate thumbnail

The migrations should now be found in your local project's "sorl_thumbnail/migrations" folder.

这篇关于权限被拒绝在流氓的Django应用程序中创建迁移文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆