我对Ruby on Rails完全不熟悉,从未参与其中,但我应该接管其他人的旧项目。他设计了一个webapp,可以在线登录网站/服务器,每天从中提取数据并执行计算。但是,应用程序还没有运行很长一段时间,所以现在当它尝试显示统计信息时,页面崩溃了。它使用5周时间内的数据,目前只有2天的数据。
我需要为缺失的周数手动插入数据,以便重新启动并运行,但问题是我不知道如何查找/访问其数据库,也不知道如何使用Ruby on Rails。我在他的项目的db目录中找到了几个文件,但它们大多是.sqlite33文件或只是'文件'。我为Windows下载了sqlite预编译二进制文件并尝试使用它,但不知道该怎么做。我也下载并尝试使用SQTView打开文件来更改表格,但我没有运气。
如何判断哪个文件是主数据库?如何编辑?什么是.sqlite33文件?感谢。
修改的 该应用程序生成一个 HomeController #index中的TypeError “nil不能被强制进入Float”
它将错误链接到代码中的一行,但发生错误的唯一原因是因为表中没有数据表示该行代码中的变量尝试使用的时间段。这就是我想用值手动更新它的原因。
我认为Sqliteman可以做到这一点,谢谢你向我解释所有这些。我只需要在编辑后确认它是否有效。
EDIT2 好的,所以我在尝试他的应用程序时得到了一个小小的启示。事实证明,由于整整星期的空值,页面崩溃了。如果我使用该应用程序每周至少收集一天的数据,直到本周,那么应用程序就可以运行。
有没有办法可以填充所有丢失的日子,而无需手动点击其日历中的日期,因为它需要20-30秒才能加载?
非常感谢你的帮助。
答案 0 :(得分:1)
Rails应用程序的数据库在config/database.yml
中定义 - 尽管数据库本身和方案位于db
文件夹中。在database.yml
中,您将找到三种数据库配置 - 开发,测试和生产 - 因此请务必选择正确的文件。
我从未听说过.sqlite33
个文件,但为了手动编辑SQLite文件,我建议使用SQLiteMan。但我不建议手动编辑它。
我建议的是检查您是否在开发或生产模式下运行应用程序,因为这两个mod使用不同的数据库。尝试以其他模式运行它。
如果不起作用,请尝试保存数据库文件的副本,然后运行命令:
bundle install
bundle exec rake assets:precompile
rake db:migrate
rake db:migrate RAILS_ENV="production"
(如果您使用的是Linux,您可能还希望使用sudo
运行第一个命令)
这些命令确保安装了所有必需的gem,预编译的资产是最新的,并且数据库符合架构。如果您在同一台计算机上运行该应用程序并使用与其他人使用的数据库相同的数据库,那么这些命令不应该是必需的,但如果您已将应用程序移动到您自己的计算机上,或者使用了过时的db文件,这些命令可能会修复崩溃。
无论如何,如果您告诉我们应用程序产生了什么错误,我们可能会提供更多帮助。