Ruby on rails Rails—在启动时执行rake任务

Ruby on rails Rails—在启动时执行rake任务,ruby-on-rails,heroku,rake,Ruby On Rails,Heroku,Rake,我在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

我在
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
中删除代码,并按如下方式更改web流程:

  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,那么创建一个Procfile并将其添加到git中

现在,您的rake任务将仅在启动服务器之前执行