我有一个Rails应用程序,它从各种内部API和商店中提取信息到本地SQLite DB中。我的rails应用程序基本上是从多个API中提取的数据之上的美化UI。
由于超出此问题范围的原因,通过重新查询API来定期更新数据库中的信息并不简单。我基本上被迫从头开始重新创建数据库。
本质上我想每隔X小时做一次这样的事情 -
rake db:drop; rake db:create; rake db:migrate
)rake myApp:update
)这提出了一些问题
rake
任务?有没有办法在初创公司调用rake
任务?我想我可以在.rb
下创建一个config/initalizers
进程,该进程会在启动时运行(但仅限于Rails.env == 'production'
时)?感谢您的帮助!
答案 0 :(得分:1)
RAILS_ENV=production
,以便它们点击正确的sqlitedb文件。不要试图在rails启动时调用rake任务,从你的cron作业调用的脚本中调用它们,然后启动应用程序。答案 1 :(得分:1)
只需创建一个定期运行的Cron任务。 Cron任务启动一个shell stript,它只执行你手动运行的所有步骤。
维护页面有一个gem(https://github.com/biola/turnout)。它提供了rake maintenance:start
和rake maintenance:end
等rake任务。
我认为没有必要删除表格。通常它应该足以删除所有记录,然后创建新记录。如果您真的必须删除数据库,那么从结构转储中恢复数据库模式可能会更快。