Запуск db: сброс на Heroku приводит к синтаксической ошибке - PullRequest
0 голосов
/ 20 марта 2012

У меня есть логическое поле, которое, кажется, вызывает проблемы. Когда я запускаю heroku run rake db:reset, я получаю в результате:

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 Ответ

1 голос
/ 28 июля 2012

Проверьте ваш schema.rb файл, вы можете найти там

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

Вы можете создать миграцию

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

Я думаю, вы также можете добавить :limit => nil к create_table миграции,Возможно, вам также придется запустить rake db:migrate в среде разработки и зафиксировать новый schema.rb без :limit в рабочей среде.

...