升级站点时出现数据库错误

时间:2014-01-21 14:16:38

标签: django python-2.7 review-board

我已经在虚拟环境中安装了评论板,并使用带有mod_wsgi的apache2在ubuntu 13.10上创建了站点评论板。 当我点击

http://localhost

我被要求升级网站

  

运行审核委员会的版本与版本不匹配   网站上次升级为。你运行1.7.20,该网站是   最后升级到1.7.21。

     

请运行以下网址升级您的网站以解决此问题:

并升级

$ rb-site upgrade /home/naveen/venv-review/reviewboard

得到了

我收到了以下消息:

  

更新数据库。这可能需要一段时间。

     

可以忽略下面的日志输出,包括警告和错误   除非升级失败。

     

------------------ ------------------创建表...安装自定义SQL ...安装索引......已安装   0个对象来自0个夹具无需进化。   ------------------- -------------------

     

重置数据库内缓存。追溯(最近的呼叫最后):
  文件“/ home / naveen / venv-review / bin / rb-site”,第9行,in       load_entry_point('ReviewBoard == 1.7.21','console_scripts','rb-site')()文件   “/home/naveen/venv-review/local/lib/python2.7/site-packages/ReviewBoard-1.7.21-py2.7.egg/reviewboard/cmdline/rbsite.py”,第2027行,主要内容       command.run()文件“/home/naveen/venv-review/local/lib/python2.7/site-packages/ReviewBoard-1.7.21-py2.7.egg/reviewboard/cmdline/rbsite.py”,line 1860年,在奔跑       site.run_manage_command(“fixreviewcounts”)文件“/home/naveen/venv-review/local/lib/python2.7/site-packages/ReviewBoard-1.7.21-py2.7.egg/reviewboard/cmdline/rbsite.py “,第562行,在run_manage_command中       execute_manager(reviewboard.settings,[ file ,cmd] + params)文件   “/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2.7.egg/django/core/management/init.py “,第459行,在execute_manager中       utility.execute()文件“/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2.7.egg/django/core/management/init .py“,第382行,执行中       self.fetch_command(子命令).run_from_argv(self.argv)文件“/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2.7.egg/django/核心/管理/ base.py”   第196行,在run_from_argv中       self.execute(* args,** options。 dict )文件“/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2 .7.egg / Django的/核心/管理/ base.py”   第232行,执行中       output = self.handle(* args,** options)File“/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2.7.egg/django/核心/管理/ base.py”   第371行,处理中       return self.handle_noargs(** options)File“/home/naveen/venv-review/local/lib/python2.7/site-packages/ReviewBoard-1.7.21-py2.7.egg/reviewboard/reviews/management/命令/ fixreviewcounts.py”,   第16行,在handle_noargs中       starred_public_request_count =无)文件“/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2.7.egg/django/db/models/manager.py”,   第185行,更新中       return self.get_query_set()。update(* args,** kwargs)file“/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2.7.egg /django/db/models/query.py”   第536行,更新中       rows = query.get_compiler(self.db).execute_sql(无)文件“/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2.7.egg/ Django的/ DB /模型/ SQL / compiler.py”   第988行,在execute_sql中       cursor = super(SQLUpdateCompiler,self).execute_sql(result_type)文件   “/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2.7.egg/django/db/models/sql/compiler.py”   第818行,在execute_sql中       cursor.execute(sql,params)文件“/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2.7.egg/django/db/backends/sqlite3 /base.py“,第344行,执行中       返回Database.Cursor.execute(self,query,params)django.db.utils.DatabaseError:尝试编写只读数据库

sqlite数据库目录已被授予访问服务器(www-data)的权限,如: sudo chown www-data / home / naveen / venv-review / reviewboard / data

如果是这种情况,www-data是否应该具有site / reviewboard的读/写访问权限?

更新 *

检查apache2用户

ps aux | grep apache2

root      1146  0.0  0.0  84208  3928 ?        Ss   11:19   0:00 /usr/sbin/apache2 -k start
www-data  3632  0.1  0.6 698464 51056 ?        Sl   11:34   0:01 /usr/sbin/apache2 -k start
www-data  3742  0.1  0.6 698480 51032 ?        Sl   11:34   0:01 /usr/sbin/apache2 -k start
naveen    7162  0.0  0.0  13652   940 pts/1    S+   11:53   0:00 grep apache2

1 个答案:

答案 0 :(得分:0)

sqlite3文件,不仅是目录,必须拥有,并且必须由运行Web服务器的用户写入。

所以你可以尝试从终端shell运行:

sudo chown -R www-data /home/naveen/venv-review/reviewboard/data
sudo chmod -R u+w /home/naveen/venv-review/reviewboard/data/*

第一个命令以递归方式更改文件夹内文件的所有者,第二个命令确保用户对这些文件具有写入权限。