Rails初始化程序正在迁移数据库时运行 [英] Rails initializers are running while migrating database

查看:88
本文介绍了Rails初始化程序正在迁移数据库时运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

令人惊讶的是,Rails的初始化程序在运行任何rake任务时运行,包括 db:migrate db:seed

It is very surprising that Rails's initializers run while running any rake task, including db:migrate and db:seed.

我的应用程序中的初始化程序启动了后台线程(一种工作进程),并且仅当应用程序在调试和生产模式下运行时才应执行

An initializer in my app starts a background thread (a kind of worker process), and it should be executed only when the application is running in debug and production mode.

在执行 rake db:migrate 时如何防止特定的初始化程序运行,或者如何在初始化程序中进行检测一个rake任务正在运行?

How to prevent a specific initializer from running when doing rake db:migrate or how to detect in initializer that a rake task is running?

推荐答案

以下是一种解决方案,用于防止初始化程序在Rake任务中运行:

Here is a solution how to prevent an initializer from running in Rake task:

unless ( File.basename($0) == 'rake')
   # Initializer code
end

这篇关于Rails初始化程序正在迁移数据库时运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆