Rails 4 SQLite3 :: ReadOnlyException:尝试编写一个只读数据库

chi*_*eek 5 ruby sqlite permissions macos ruby-on-rails

SQLite3::ReadOnlyException: attempt to write a readonly database: UPDATE "users" SET "current_sign_in_at" = ?, "sign_in_count" = ?, "updated_at" = ? WHERE "users"."id" = ?尝试登录使用devise gem的Rails 4应用程序时,我始终收到错误消息。

我认为它与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/
Run Code Online (Sandbox Code Playgroud)

之后cd荷兰国际集团到数据库目录,你可以看到有什么不妥的数据库本身的权限:

-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
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

a)当权限本身似乎没有任何问题时,为什么无法写入数据库

b)+在Mac OS上是什么意思?

Eli*_*kes 7

a)当权限本身似乎没有任何问题时,为什么无法写入数据库

我最好的猜测是该db/目录归root用户所有,而db/*.sqlite3文件归user所有a36971。该db/目录可能也必须归用户所有a36971

尝试将db目录的所有者从root更改a36971为:

sudo chown a36971 db
Run Code Online (Sandbox Code Playgroud)

b)Mac OS上的+是什么意思?

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