2012-08-02 31 views
0

我对Ruby on Rails完全陌生,从来没有用过它,但我应该接管别人的旧项目。他设计了一个在线登录网站/服务器的web应用程序,每天从中提取数据并执行计算。但是,该应用程序尚未运行一段时间,因此现在当它尝试显示统计信息时,该页面会崩溃。它使用5周的数据,目前只有2天的数据。如何访问/打开/编辑.sqlite33文件?

我需要手动插入缺失周的数据以便重新启动并运行,但问题是我不知道如何查找/访问其数据库,也不知道如何使用Ruby on Rails。我在他的项目的db目录中发现了几个文件,但他们大多是.sqlite33文件或只是'文件'。我下载了用于Windows的sqlite预编译二进制文件,并试图使用它,但不知道该怎么做。我也下载并尝试使用SQTView打开文件来更改表格,但我没有运气。

如何判断哪个文件是主数据库,如何编辑它?什么是.sqlite33文件?谢谢。

EDIT 中的应用产生在HomeController的#索引 一个 类型错误“无不能被强迫浮动”

它的错误链接到代码中的一个线,但唯一的原因的错误发生的原因是在该行代码中的变量尝试使用的时间段内表中没有数据。这就是为什么我想用值手动更新它。

我认为Sqliteman可能会这样做,并感谢你向我解释所有这些。我只需在编辑后确认它是否有效。

EDIT2 好的,所以我在尝试使用他的应用程序时有一个小小的启示。事实证明,该页面因整周的空值而崩溃。如果我使用应用程序在本周至少每周收集一天的数据,那么该应用程序工作。

有没有一种方法可以填充所有缺失的日子而无需手动点击其日历中的日子,因为它需要花费20-30秒才能加载?

非常感谢您的帮助。

回答

1

Rails应用程序的数据库在config/database.yml中定义 - 尽管数据库本身和方案位于db文件夹中。在database.yml你会发现三个数据库配置 - 开发,测试生产 - 所以一定要选择正确的文件。

我从来没有听说过.sqlite33文件,但为了手动编辑SQLite文件,我推荐SQLiteMan。但我不建议手动编辑它。

我所推荐的是,检查如果您在发展生产模式下运行的应用程序作为两个MODS的使用不同的数据库。尝试在其他模式下运行它。

如果还是不行,请尝试保存数据库文件的副本,并运行命令:

bundle install 
bundle exec rake assets:precompile 
rake db:migrate 
rake db:migrate RAILS_ENV="production" 

(如果你使用Linux,那么你可能想也与运行的第一个命令sudo

这些命令确保安装了所有必需的gem,预编译的资产是最新的,并且数据库符合架构。如果您在同一台计算机上运行该应用程序并使用与其他人使用的数据库相同的数据库,则应该不需要这些命令,但是如果您已将该应用程序移至自己的机器上,或者使用过使用过的过时的数据库文件,这些命令可能会修复崩溃。

无论如何,如果您告诉我们应用程序产生了什么错误,我们可能会提供更多帮助。

+0

你错过了rake db:控制台虽然 – Viren 2012-08-02 16:19:29

+0

@Viren:在运行它之前,我编写了从源代码准备rails应用程序所需的命令。 'rake db:console'不需要**安装和运行**应用程序 - 这对调试应用程序很有用。另外,OP表示他没有设法处理SQLite命令行工具 - 并且由于'rake db:console'打开配置数据库的命令行工具,我不明白它将如何帮助他。 – 2012-08-02 16:35:54