运行 rake 任务时无法在生产环境中迁移数据库
unable to migrate database on production while running rake task
我正在开发一个小应用程序,它将
每天下载一个 csv 文件(从给定 url)并将数据(在 csv 文件中)注入数据库并在 webview 中加载相同的数据。当我从 csv 文件部署到 heroku 数据库注入不起作用时,它在我的本地 system.but 中工作完美。
这是我的代码。
downloader.rake 文件
namespace :downloader do
desc "download a file"
task:downloading => :environment do
Rails.logger.info("message from task")
Download.destroy_all
ActiveRecord::Base.connection.execute("DELETE from sqlite_sequence where name = 'downloads'")
#**********some other code ************
end
end
schedule.rb 文件
set :environment, 'production'
every 1.minutes do
rake "downloader:downloading"
end
当我 运行 它在生产中时它显示在日志中 ($tail -f log/production.log)
D, [2015-07-21T12:17:02.910529 #11740] DEBUG -- : Download Load (0.2ms) SELECT "downloads".* FROM "downloads"
E, [2015-07-21T12:17:02.910635 #11740] ERROR -- : SQLite3::SQLException: no such table: downloads: SELECT "downloads".* FROM "downloads"
看起来你的数据库在 Heroku 上还没有准备好。
请确认已为您的应用程序安装了 mysql 数据库,然后 运行 heroku run db:setup
构建模式并为其播种。
我正在开发一个小应用程序,它将 每天下载一个 csv 文件(从给定 url)并将数据(在 csv 文件中)注入数据库并在 webview 中加载相同的数据。当我从 csv 文件部署到 heroku 数据库注入不起作用时,它在我的本地 system.but 中工作完美。
这是我的代码。
downloader.rake 文件
namespace :downloader do
desc "download a file"
task:downloading => :environment do
Rails.logger.info("message from task")
Download.destroy_all
ActiveRecord::Base.connection.execute("DELETE from sqlite_sequence where name = 'downloads'")
#**********some other code ************
end
end
schedule.rb 文件
set :environment, 'production'
every 1.minutes do
rake "downloader:downloading"
end
当我 运行 它在生产中时它显示在日志中 ($tail -f log/production.log)
D, [2015-07-21T12:17:02.910529 #11740] DEBUG -- : Download Load (0.2ms) SELECT "downloads".* FROM "downloads"
E, [2015-07-21T12:17:02.910635 #11740] ERROR -- : SQLite3::SQLException: no such table: downloads: SELECT "downloads".* FROM "downloads"
看起来你的数据库在 Heroku 上还没有准备好。
请确认已为您的应用程序安装了 mysql 数据库,然后 运行 heroku run db:setup
构建模式并为其播种。