gpt4 book ai didi

ruby-on-rails - Rails - 在启动时执行 rake 任务

转载 作者:行者123 更新时间:2023-12-03 16:19:27 24 4
gpt4 key购买 nike

我在 config/application.rb 中有以下代码

config.after_initialize do

IndividualProject::Application.load_tasks
#load File.join(Rails.root, 'lib', 'tasks', 'download_csv.rake')
Rake::Task[ 'download_csv:get_files' ].invoke
Rake::Task[ 'download_csv:place_in_database' ].invoke
end

我的问题是,如果我尝试执行迁移,我会收到一个数据库错误,提示我在 rake 任务中引用的其中一个表不存在。

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "currencies" does not exist

我可以通过注释掉代码然后运行迁移来解决问题。在此之后,服务器运行正常。

但是,我想部署到 Heroku,在那里我无法在运行迁移之前注释掉代码。

我该如何解决这个问题?我是否需要将代码放在项目的其他位置?

最佳答案

config/application.rb 中删除您的代码并更改 Procfile 中的网络进程像下面这样:

  web: rake download_csv:get_files && rake download_csv:place_in_database && bundle exec rails server -p $PORT

bundle exec rails server -p $PORT 更改为您用来启动服务器的任何代码。

如果您的项目中还没有 Procfile,请创建一个并将其添加到 git。

现在你的 rake 任务只会在启动服务器之前执行。

关于ruby-on-rails - Rails - 在启动时执行 rake 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30411027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com