Rails 4中的SQLite3::ReadOnlyException: 尝试写入只读数据库

9
我不断收到错误信息SQLite3::ReadOnlyException: attempt to write a readonly database: UPDATE "users" SET "current_sign_in_at" = ?, "sign_in_count" = ?, "updated_at" = ? WHERE "users"."id" = ?,这是在尝试登录我的Rails 4应用程序时使用了devise gem引起的。
我认为这与dev db上的权限有关,因此首先检查了dir的权限,发现末尾附加了一个+,经过一些搜索后仍然无法弄清楚它的作用。
-rw-r--r--   1 a36971  staff   2.1K 24 Jan 20:16 Gemfile
-rw-r--r--   1 a36971  staff   5.7K 24 Jan 20:16 Gemfile.lock
-rw-r--r--   1 a36971  staff    47B  7 Jan 22:31 README.md
-rw-r--r--+  1 root    staff   249B  7 Jan 19:57 Rakefile
drwxr-xr-x+  8 root    staff   272B  7 Jan 19:57 app/
drwxr-xr-x+  7 root    staff   238B  7 Jan 19:57 bin/
drwxr-xr-x+ 13 root    staff   442B 22 Jan 20:14 config/
-rw-r--r--+  1 root    staff   153B  7 Jan 19:57 config.ru
drwxr-xr-x+  8 root    staff   272B 26 Jan 10:28 db/
drwxr-xr-x+  4 root    staff   136B  7 Jan 19:57 lib/
drwxr-xr-x+  5 root    staff   170B  8 Jan 15:51 log/
drwxr-xr-x+  7 root    staff   238B  7 Jan 19:57 public/
drwxr-xr-x   7 a36971  staff   238B 17 Jan 22:38 spec/
drwxr-xr-x+  9 root    staff   306B  7 Jan 19:57 test/
drwxr-xr-x+  6 root    staff   204B  7 Jan 20:19 tmp/
drwxr-xr-x+  3 root    staff   102B  7 Jan 19:57 vendor/

在进入 db 目录后,您可以看到 db 本身的权限没有问题:

-rw-r--r--  1 a36971  staff    44K 26 Jan 09:30 development.sqlite3
drwxr-xr-x  5 a36971  staff   170B 22 Jan 20:14 migrate/
-rw-r--r--  1 a36971  staff   2.2K 22 Jan 20:14 schema.rb
-rw-r--r--  1 a36971  staff   1.2K 25 Jan 23:22 seeds.rb
-rw-r--r--  1 a36971  staff    44K 26 Jan 09:23 test.sqlite3

所以我的问题是:

a)为什么在权限本身没有问题的情况下无法写入数据库?

b)在mac os上,+是什么意思?

2个回答

13
我的猜测是,db/ 目录的所有者是 root 用户,而 db/*.sqlite3 文件的所有者是用户 a36971。可能需要将 db/ 目录的所有者也改为用户 a36971。尝试将 db 目录的所有者从 root 更改为 a36971
sudo chown a36971 db

b) 在 macOS 上,加号代表什么意思?

+ 符号表示有额外的权限细节未在 ls -l 的默认输出中显示。尝试运行 ls -le 查看详情(来源:http://tech.enekochan.com/en/2014/05/29/plus-and-at-symbols-listing-file-permissions-in-mac-os-x/)。


4

在运行rails db:reset之后,出现了同样的错误。

重新启动本地服务器解决了我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接