Rails设置没有主键的postgresql数据库

时间:2016-08-08 10:15:01

标签: ruby-on-rails database postgresql heroku

我在数据库中乱了几下,因为我搞砸了,我想从头开始并再次设置postgresql数据库。

rake db:setup
rake db:migrate

然而,现在我的应用程序中出现了各种错误。将这个损坏的数据库的pg_dump与我在heroku上工作的pg_dump进行比较时,我发现最大的区别是有些id列没有被定义为我本地的主键数据库(因此在我的本地数据库中定义NOT NULL列时缺少id部分。 在我的本地数据库

上也没有为SEQUENCES制作id's

比较我的本地机器和heroku上的schema.rb我发现不同之处在于,在我的本地机器上,为这些表和heroku定义了列id。 所以例如在我的本地机器上我得到了

  create_table "pictures", id: false, force: :cascade do |t|

    t.integer  "id",                 limit: 8
    t.datetime "created_at"
    t.datetime "updated_at"
    t.text     "image"
    t.text     "image_content_type"
    t.integer  "image_file_size",    limit: 8
    t.datetime "image_updated_at"
    t.integer  "post_id",            limit: 8
  end

并且在heroku上缺少第一行t.integer id limit:8

现在我的两个问题是,

  • 这种差异是否会导致我的数据库存在差异?
  • 如果是这样,为什么当两个应用程序具有相同的迁移时,heroku具有不同的schema.rb?

0 个答案:

没有答案