今天下午,当我笔记本电脑上的开发版本突然停止工作时,我正在使用Ruby on Rails应用程序。原来整个数据库都已清空。我有一个备份,所以这不是问题,但我对应用程序的在线版本中包含重要数据的情况感到担心。
当时我正在做的事情可能会影响到这个问题: -进行了2次迁移,添加了以下表格:
class AddUpdatedatesToProduct < ActiveRecord::Migration
def change
add_column :products, :last_image_check, :datetime
add_column :products, :last_feed_update, :datetime
add_column :products, :last_response_check, :datetime
end
end
class AddRuntimeToFeedRun < ActiveRecord::Migration
def change
add_column :feed_runs, :runtime, :datetime
end
end
我运行了bundle update
,将rake
宝石的评级从12下调至10.5。尝试升级宝石rails-spec
(同时尝试将last_comment error
排除为mentioned here时)。问题是是否有rake db:drop
,但我很确定我从未这样做过。
我通过直接登录postgresql确认所有表都已清空(但表本身仍然保留)。
我的代码中几乎没有什么可以做数据库中的任何重大删除操作。我没有提到重置数据库,截断之类的东西。从这个意义上讲,代码中没有什么会影响所有表。
我的日志(在疑难解答期间重新启动笔记本电脑后,我不再可以访问)的日志仅显示正在加载的页面,然后显示的是下一页,其中不再包含与数据相关的错误。我很确定实际运行Web应用程序导致的任何操作都没有。一定是我在控制台上所做的。
到底是什么导致了类似的事情发生?如果没有其他要求,什么命令将删除所有表中的所有行?