2016-07-30 76 views
2

我想在运行Ubuntu 16.04的虚拟服务器上部署django应用程序。django:如何避免迁移的权限错误

python manage.py makemigrations 

导致下面的回溯,一些模型和领域已经创建后:

Traceback (most recent call last): 
    File "manage.py", line 12, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/sysadmin/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line 
    utility.execute() 
    File "/home/sysadmin/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/sysadmin/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/home/sysadmin/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute 
    output = self.handle(*args, **options) 
    File "/home/sysadmin/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py", line 150, in handle 
    self.write_migration_files(changes) 
    File "/home/sysadmin/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py", line 179, in write_migration_files 
    with open(writer.path, "wb") as fh: 
IOError: [Errno 13] Permission denied: u'/home/sysadmin/public_html/aegee-stuttgart.org/aegeewww/migrations/0001_initial.py' 

我也试过:

sudo python manage.py makemigrations 

但因为我使用的是虚拟环境中,我得到以下错误,因为django没有安装全系统:

ImportError: No module named django.core.management 

我该如何解决这个错误? python路径被正确识别,并且django显然安装在venv中。

如何为用户设置权限?

谢谢!

回答

3

您需要授予迁移文件夹的用户访问:

sudo chown <your_username> <path_to_migrations_folder> 
+0

起初:谢谢!这很简单。 事情是,是否有一个一般的建议,用户需要在哪个文件夹写入权限,而不是?或者我只需要授予某些文件夹的权限,每当我遇到这个问题?或者会是唯一发生这种情况的时间? – setchock

+0

一般而言,您应该从有权访问项目目录的用户运行django项目。 –

+0

@EugeneSoldatov谢谢兄弟,你已经节省了我的时间:) –