0

我对 Ruby on Rails 完全陌生,从未参与过它,但我应该接管别人的旧项目。他设计了一个网络应用程序,可以在线登录网站/服务器,每天从中提取数据并执行计算。但是,该应用程序已经有一段时间没有运行了,所以现在当它尝试显示统计信息时,页面崩溃了。它使用 5 周的数据,目前只有 2 天的数据。

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

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

编辑 应用程序在 HomeController#index "nil can't be coerced into Float" 中产生 TypeError

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

我认为 Sqliteman 可能会成功,感谢您向我解释所有这些。我只需要在编辑后确认它是否有效。

EDIT2 好的,所以我在试验他的应用程序时得到了一个小启示。事实证明,由于整周的空值,页面崩溃了。如果直到本周为止,我每周至少使用该应用程序收集一天的数据,那么该应用程序就可以正常工作。

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

非常感谢您的帮助。

4

1 回答 1

1

Rails 应用程序的数据库定义在config/database.yml- 尽管数据库本身和方案都在db文件夹中。database.yml您将在其中找到三个数据库配置 -开发测试生产-因此请确保选择正确的文件。

我从未听说过.sqlite33文件,但要手动编辑 SQLite 文件,我推荐SQLiteMan。但我不建议手动编辑它。

我建议检查您是在开发模式还是生产模式下运行应用程序,因为这两个模块使用不同的数据库。尝试在其他模式下运行它。

如果这不起作用,请尝试保存数据库文件的副本,然后运行以下命令:

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

(如果您使用的是 Linux,您可能还想使用 运行第一个命令sudo

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

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

于 2012-08-02T15:13:37.090 回答