2012-03-20 82 views
0

我有一个布尔型的字段,似乎是导致问题。当我运行heroku run rake db:reset,我得到这个结果:在Heroku上运行分贝:重置导致语法错误

rake aborted! 
PGError: ERROR: syntax error at or near "(" 
LINE 1: ...her_email" character varying(255), "admin" boolean(255) DEFA... 
                  ^
: CREATE TABLE "users" ("id" serial primary key, "name" character varying(255), "email" character varying(255), "other_email" character varying(255), "admin" boolean(255) DEFAULT 'f', "password_digest" character varying(255), "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL, "auth_token" character varying(255), "password_reset_token" character varying(255), "password_reset_sent_at" timestamp, "plant_id" integer, "invoice" boolean) 

这里是有问题的迁移:

class CreateUsers < ActiveRecord::Migration 
    def change 
    create_table :users do |t| 
     t.string :name 
     t.string :email 
     t.string :other_email 
     t.boolean :admin, :default => false, :null => false 
     t.string :password_digest 

     t.timestamps 
    end 
    end 
end 

我不确定为什么一个字段长度被添加到一个布尔字段。有没有办法来覆盖这种行为?

回答

1

检查schema.rb文件,你会发现有

t.boolean "admin", :limit => 255 

您可以创建迁移

change_column :users, :admin, :boolean, :limit => nil 

我猜你也可以添加到:limit => nil迁移create_table。您可能还必须在开发环境中运行rake db:migrate,并在不生产:limit的情况下提交新的schema.rb