如何取消正在运行的迁移

Obr*_*ios 14 ruby-on-rails

ruby on rails我运行的应用程序中rails db:migrate,由于某种原因,迁移挂起.我最终不得不杀死运行迁移的终端选项卡.当我尝试rails db:migrate在新选项卡中运行时,收到此错误消息:

Cannot run migrations because another migration process is currently running
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Obr*_*ios 9

停止然后再次重新启动数据库.然后再试rails db:migrate一次.

如果您在Mac OSX上使用与homebrew一起安装的posgresql,则以下停止/重新启动数据库:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
pg_ctl -D /usr/local/var/postgres stop -s -m fast
Run Code Online (Sandbox Code Playgroud)

  • 重新启动数据库可能不是您在生产环境中"只做"的事情.在这种情况下,释放锁可能更合适,请参阅:/sf/answers/3288359021/ (4认同)

Ume*_*tra 7

如果您在基于Linux的系统中使用postgresql,则可以使用以下命令重新启动数据库。然后再次运行您的迁移。

/etc/init.d/postgresql restart
Run Code Online (Sandbox Code Playgroud)