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

我已经在虚拟环境中安装了评论板,并使用带有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行,在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行,在主命令.run()文件“/home/naveen/venv-review/local/lib/python2.7/site-packages/ReviewBoard-1.7.21-py2.7.egg/reviewboard/cmdline/rbsite.py” ,第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/man agement / 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 / core / management / 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 / core / management / base.py“,第232行,执行输出= self.handle(* args,* 选项)文件“/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2.7.egg/django/core/management/base.py”,行371,句柄返回self.handle_noargs(* options)文件“/home/naveen/venv-review/local/lib/python2.7/site-packages/ReviewBoard-1.7.21-py2.7.egg/reviewboard/评论/ management / commands / fixreviewcounts.py“,第16行,在handle_noargs starred_public_request_count =无)文件”/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2更新retu中的.7.egg / django / db / models / manager.py“,第185行自我.get_query_set() . update(* args,** kwargs)文件“/home/naveen/venv-review/local/lib/python2.7/site-packages/Django-1.4.10-py2.7.egg /django/db/models/query.py“,第536行,更新行= 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/models/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)

2 years ago

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/*

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