Rails初始化程序正在迁移数据库时运行 [英] Rails initializers are running while migrating database
问题描述
令人惊讶的是,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屋!