2014-01-15 3 views
0

Когда я запускаю rake db: seed Я получаю сообщение об ошибке, которое, как я предполагаю, может иметь какое-то отношение к объектам даты, которые строятся как атрибуты на моделях I я создаю в seeds.rb. Если это причина, есть ли способ обойти это? Вот выход ошибки:Невозможно выполнить rake db: seed, получить PG :: InvalidTimeZoneDisplacementValue: ERROR

rake aborted! 
PG::InvalidTimeZoneDisplacementValue: ERROR: time zone displacement out of range: "-4712-01-01" 
: INSERT INTO "courses" ("code", "created_at", "description", "end_on", "image_content_type", "image_file_name", "image_file_size", "image_updated_at", "instructor_token", "name", "public", "school", "start_on", "student_token", "syllabus", "ta_token", "term", "updated_at", "year") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19) RETURNING "id" 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:1174:in `get_last_result' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:1174:in `exec_cache' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:661:in `block in exec_query' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activesupport-3.2.13/lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:659:in `exec_query' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/database_statements.rb:63:in `exec_insert' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/database_statements.rb:90:in `insert' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/query_cache.rb:14:in `insert' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/relation.rb:66:in `insert' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/persistence.rb:367:in `create' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/timestamp.rb:58:in `create' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/callbacks.rb:268:in `block in create' 
/Users/evankline/.rvm/gems/ruby-1.9.3-p448/gems/activesupport-3.2.13/lib/active_support/callbacks.rb:403:in `_run__2393321980833873965__create__2992353098426140512__callbacks' 

Я видел эту ошибку, описанную в связи с Heroku, но о нем ничего не происходит на локальной машине. Большинство ответов было связано с переключением на Ruby 1.9.2, однако это вызывает ошибки, поскольку некоторые из драгоценных камней, которые я использую в приложении, требуют Ruby 1.9.3 или выше. Любая помощь будет принята с благодарностью, спасибо!

ответ

1

PostgreSQL не распознал дату как действительный ввод. Изменяя следующее:

Date.new(2014,1,17) 

к:

Date.parse("2014-1-17") 

Я был в состоянии получить семена для заполнения БД.

+0

Моя проблема была в том, что я хотел сегодняшнюю дату и не проходил никаких параметров. Я должен был использовать 'Date.today'. – dsummersl

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