【发布时间】:2011-11-26 13:13:38
【问题描述】:
我刚刚将一个简单的 Ruby on Rails (3.0.10) 应用程序部署到 Heroku。有一行代码像这样创建一个新的用户对象。
User.create(:name => "[name here]", :email => "[email here]")
它可以在我使用 MySQL 的本地机器上运行良好。将其部署到 Heroku 后,出现错误。
ActiveRecord::StatementInvalid: PGError: ERROR: null value in column "id" violates not-null constraint : INSERT INTO "users" ("id", "name", "email", "created_at", "updated_at") VALUES (NULL, '[name here]', '[email here]', '2011-09-28 03:59:12.908593', '2011-09-28 03:59:12.908593') RETURNING "id"
我不知道我的代码有什么问题。我错过了什么吗?
谢谢大家。
更新
迁移
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :email
t.string :name
t.timestamps
end
end
def self.down
drop_table :users
end
end
架构
ActiveRecord::Schema.define(:version => 20110922071106) do
create_table "users", :force => true do |t|
t.string "email"
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
end
end
【问题讨论】:
-
是的。我知道,但恐怕没有任何生产配置。太奇怪了……我正在做更深入的检查……会尽快在这里更新……
标签: ruby-on-rails ruby-on-rails-3 postgresql activerecord heroku