LoginSignup
0
0

More than 1 year has passed since last update.

【第6章】Railsチュートリアルでデータベースに新規ユーザーが保存できない時にやったこと

Posted at

Railsチュートリアル第6章(第6版)-6.3.4 ユーザーの作成と認証- でデータベースに新規ユーザーを登録しようとすると、rollback transactionが動いて保存が取り消されてしまう。Railsチュートリアル第6章.png

やったこと① メッセージ内容を確認した

まず、よくメッセージ内容を確認した。すると、

ActiveRecord::StatementInvalid (SQLite3::BusyException: database is locked)

とあった。データベースがロックしてあるようだ。

やったこと② SQLite3のdatabase is lockedについて調べた

分からないことはさっさと検索する。すると以下の記事がヒットした。
引用:http://fanblogs.jp/scripts/archive/61/0

この記事によると、ファイル名を別名にしてコピーすることでロックが解除できるようだ。
よく分からないがやってみることにする。

やったこと③ データベースのファイルを別名にし、そのコピーを元の名前で作成した

記事に従って以下のコマンドを叩いてみた。
1. mvコマンドを使ってロックされているSQLiteのデータベースファイルを別名にする。

$ mv development.sqlite3 bk.development.sqlite3
  1. cp -p コマンドを使って元と同じファイル日付で、元と同じファイル名としてコピーする。
$ cp -p dk.development.sqlite3 development.sqlite3

するとrollback transactionが表示されずに、新規ユーザーの登録に成功した。
Rチュートリアル(6_3).png

まとめ

やったこと①②③の流れで解決できた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0