代码之家  ›  专栏  ›  技术社区  ›  LoveMeSomeCode

Heroku+Sinatra+数据映射器

  •  1
  • LoveMeSomeCode  · 技术社区  · 15 年前

    我在将Sinatra+数据映射器应用程序部署到Heroku时遇到问题。该应用程序在本地工作,但部署失败。

    错误如下:

    不推荐使用带explicit:serial选项的integer id,请改用serial(./hello.rb:15) /home/slugs/339253_c667ceb_65a5-45e31e8c-0236-4d03-96ec-a59bdabdf788/mnt/.gems/gems/dm-migrations-1.0.2/lib/dm migrations/adapters/dm postgres adapter.rb:84:in'property_schema_hash':范围值错误(argumenterror)

    代码如下:

    Class Post
      include DataMapper::Resource
    
      property :id,    Integer, :serial => true
      property :title, String
    end
    
    Post.auto_migrate!
    first_post = Post.new
    first_post.title = "First!"
    first_post.save
    

    这是一个gem版本问题,还是我遗漏了什么?

    4 回复  |  直到 14 年前
        1
  •  3
  •   scable    15 年前

    您似乎在本地使用了另一个版本的数据映射器。

    检查本地版本: gem list --local

    如建议,也使用串行而不是整数。

        2
  •  3
  •   Dan    14 年前

    试试这个:

    Class Post
      include DataMapper::Resource
    
      property :id,    Serial
      property :title, String
    end
    
        3
  •  0
  •   solnic    15 年前

    您在本地和Heroku上使用相同版本的dm吗?

        4
  •  0
  •   Tom    15 年前

    你做了吗 Bundle Install 然后提交gemfile和gemfile.lock?如果不是HerokuWoudln不知道你想要使用哪种宝石,那么它就是默认的系统宝石。我想他们不太匹配,所以爆炸了。

    推荐文章