1

Я работаю над своим приложением (Rails 3.2, PostgreSQL 9.1) на localhost, и там все работает хорошо, поэтому я решил развернуть приложение для производства в Heroku.Rails, PostgreSQL, Heroku - как изменить правило ": null => false"?

После успешного развертывания приложения я попытался создать новый элемент и получил сообщение об ошибке:

ActiveRecord::StatementInvalid (PG::Error: ERROR: null value in column "persistence_token" violates not-null constraint 

Речь идет о таблице Users (использование Authlogic драгоценный камень). Это образец миграции - критическая часть:

class CreateUsers < ActiveRecord::Migration 
    def self.up 
    create_table :users do |t| 
     t.string :name,    :null => false 
     t.string :email,    :null => false           
     t.string :crypted_password, :default => nil, :null => true    
     t.string :password_salt,  :default => nil, :null => true   
     t.string :email,    :default => nil, :null => true   
     t.string :persistence_token, :null => false  
     t.string :single_access_token, :null => false    
     t.string :perishable_token, :null => false    
     t.datetime :last_request_at          
     t.datetime :current_login_at         
     t.datetime :last_login_at          
     t.string :current_login_ip         
     t.string :last_login_ip          

     t.timestamps 
    end 
    end 
end 

Что может вызвать эту проблему? Я имею в виду, я вижу, что в миграции указано правило :null => false, и в сообщении об ошибке говорится о нулевом значении, сохраненном в этом столбце, но как это возможно на localhost, это хорошо работает и на Heroku нет?

И как я мог исправить это? Моя первая идея состояла в том, чтобы создать новую миграцию, где я настроил для этого столбца :null => true, но верно ли это?

+0

Установки ': нуль => true' только позволяет' null' значения в столбце, затенение исходной задачи и открытие банки черви. – Femaref

ответ

0

настроить значение по умолчанию DEFAULT '' и ошибка пропала ...

 Смежные вопросы

  • Нет связанных вопросов^_^