Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails教程(M.Hartl)第三版,第8章,如何通过关闭恶意的“Rails控制台”来解锁数据库?_Ruby On Rails_Ruby_Railstutorial.org - Fatal编程技术网

Ruby on rails Rails教程(M.Hartl)第三版,第8章,如何通过关闭恶意的“Rails控制台”来解锁数据库?

Ruby on rails Rails教程(M.Hartl)第三版,第8章,如何通过关闭恶意的“Rails控制台”来解锁数据库?,ruby-on-rails,ruby,railstutorial.org,Ruby On Rails,Ruby,Railstutorial.org,我在中,生成迁移后,我尝试运行: $ bundle exec rake db:migrate 但给出了以下错误: rake aborted! StandardError: An error has occurred, this and all later migrations canceled: SQLite3::BusyException: database is locked: #followed by a long list of paths/filenames and line n

我在中,生成迁移后,我尝试运行:

$ bundle exec rake db:migrate
但给出了以下错误:

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

SQLite3::BusyException: database is locked:

#followed by a long list of paths/filenames and line numbers...

我知道这可能是因为我退出终端时没有正确退出
rails控制台--sandbox
会话。但是如何在终端控制台类型中查找并关闭此
rails控制台
会话?

(确保您位于rails应用程序目录中):

然后您应该看到一个流程列表,其中类似于:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
ubuntu     49527  0.0  0.0 482924   620 ?        Sl   Jan29   0:00 rails_console --sandbox
记下
PID
,在本例中为
49527
,然后在命令行中运行以下命令:

$ kill 49527

现在运行迁移
$bundle exec rake db:migrate
应该可以工作。

在终端控制台类型中(确保您位于Rails应用程序目录中):

然后您应该看到一个流程列表,其中类似于:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
ubuntu     49527  0.0  0.0 482924   620 ?        Sl   Jan29   0:00 rails_console --sandbox
记下
PID
,在本例中为
49527
,然后在命令行中运行以下命令:

$ kill 49527

现在运行迁移
$bundle exec rake db:migrate
应该可以了。

试着从终端运行
$ps aux | grep rails

应该返回如下内容:

username   68924   0.0  1.5  3166032  62168   ??  S     8:49PM   0:00.16 rails_console    
username   68900   0.0  0.1  2472884   3420 s003  S+    8:48PM   0:00.62 /Users/username/.rbenv/versions/2.2.2/bin/ruby bin/rails c
username   68708   0.0  0.2  2535772   6396 s000  S+    8:20PM   0:03.16 /Users/username/.rbenv/versions/2.2.2/bin/ruby bin/rails s
由于在这种情况下必须终止进程,因此请尝试使用命令强制终止进程


$kill-9pid

尝试从终端运行
$ps aux | grep rails

应该返回如下内容:

username   68924   0.0  1.5  3166032  62168   ??  S     8:49PM   0:00.16 rails_console    
username   68900   0.0  0.1  2472884   3420 s003  S+    8:48PM   0:00.62 /Users/username/.rbenv/versions/2.2.2/bin/ruby bin/rails c
username   68708   0.0  0.2  2535772   6396 s000  S+    8:20PM   0:03.16 /Users/username/.rbenv/versions/2.2.2/bin/ruby bin/rails s
由于在这种情况下必须终止进程,因此请尝试使用命令强制终止进程


$kill-9pid

实际上
ps aux | grep rails
是您应该执行的。另外,
top
是检查正在运行的进程的另一个好命令。如果我错了,请纠正我,运行
ps aux
将返回所有正在运行的进程的列表。它不会给您提供来自
rails
的过程。此外,您不必在Rails应用程序目录中才能运行它。实际上,
ps aux | grep Rails
是您应该执行的。另外,
top
是检查运行进程的另一个好命令。如果我错了,请纠正我,运行
ps aux
将返回所有运行进程的列表。它不会给您提供来自
rails
的过程。此外,您不必在Rails应用程序目录中才能运行它。您可能希望接受一个作为此问题的答案。您可能希望接受一个作为此问题的答案。