在填写SQLite表后,Sinatra请求超时

时间:2013-02-03 22:09:40

标签: sqlite sinatra datamapper

我正试图在几个小时内调试这个,我只是没有取得任何进展。我使用DataMapper作为ORM,使用SQLite作为数据库系统:

DataMapper.setup(:default, 'sqlite:db.sqlite')

我有两个模型UserGame。当我向第一个模型添加字段时,一切正常。一旦我向Game添加字段(通过Sinatra路由或IRB),所有对Sinatra的HTTP请求都会超时。所有这些,包括那些静态资产。我仍然可以通过IRB(Game.all)访问所有数据库信息。

当我清空数据库(DataMapper.auto_migrate!)并重新启动服务器(shotgun + thin)时,一切正常。

我知道这可能很难回答这个问题,但没有任何错误,我不知道如何调试它,所以如果你们能指出我正确的方向,我会很感激。


那是Game模型:

class Game
  include DataMapper::Resource

  property :id, Serial
  property :active, Boolean, default: true
  property :players, Object

  property :name, String, required: true
  property :size, Integer
  property :filled_size, Integer, default: 1
end

也许我正在使用SQLite不支持的某种类型?

1 个答案:

答案 0 :(得分:0)

我终于解决了这个问题!

我将我的应用推送到heroku,看看它是否是一些本地问题。当应用程序在heroku上崩溃时,我得到了一个堆栈跟踪作为我的AJAX请求的响应,我没有在本地得到一个(应该是相反,我知道)。问题是我在DataMapper模型上调用了to_json。我现在正在使用dm-serializer,它运行正常。