Миграция рельсов в производственном процессе завершается с ошибкой «Объект не пропущен Постоянный пользователь» - PullRequest
0 голосов
/ 11 января 2011

Я столкнулся со странной проблемой при переносе базы данных в производственном режиме. Начальная rake db:migrate завершается с ошибкой «Объект не пропущен, постоянный пользователь» , где пользователь - одна из моих моделей, доступ к которой осуществляется в этой миграции следующим образом:

add_column :users, :feedbacks_count, :integer, :default => 0
    User.reset_column_information
    User.all.each do |u|
      u.update_attribute :feedbacks_count, u.feedbacks.length
    end
end

В журналах написано следующее:

Объект не пропущен постоянный Пользователь!

/ вар / Библиотека / камни / 1.8 / драгоценные камни / ActiveSupport-2.3.4 / Библиотека / active_support / dependencies.rb: 417: в `Load_missing_constant '

/ вар / Библиотека / камни / 1,8 / драгоценные камни / ActiveSupport-2.3.4 / Библиотека / active_support / dependencies.rb: 80: в `Const_missing_not_from_s3_library '

/ var / lib / gems / 1.8 / gems / aws-s3-0.6.2 / lib / aws / s3 / extensions.rb: 206: в `const_missing '

/ вар / Библиотека / камни / 1.8 / драгоценные камни / ActiveSupport-2.3.4 / Библиотека / active_support / dependencies.rb: 92: в `Const_missing '

/ вар / Библиотека / камни / 1.8 / драгоценные камни / ActiveSupport-2.3.4 / Библиотека / active_support / dependencies.rb: 98: в `Отправить '

/ вар / Библиотека / камни / 1.8 / драгоценные камни / ActiveSupport-2.3.4 / Библиотека / active_support / dependencies.rb: 98: в `Const_missing '

/ дб / мигрировать // 20100823185519_add_columns_for_counter_caches.rb:. 5: в `Up_without_benchmarks'

/ вар / Lib / камни / 1.8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 282: в `Отправить '

/ вар / Lib / камни / 1.8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 282: в `Мигрировать '

/ USR / Lib / рубин / 1,8 / benchmark.rb: 293: в `Мера '

* * Тысяча тридцать один / VAR / Lib / камни / 1.8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 282: в `Мигрировать '
* +1033 * / вар / Lib / камни / 1.8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 365: в `
отправить * * Тысяча тридцать-семь / VAR / Lib / камни / 1.8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 365: в `Мигрировать ' * * +1039 / вар / Библиотека / камни / 1.8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 486: в `Мигрировать '

/ вар / Lib / камни / 1,8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 562: в `Вызов '

/ вар / Lib / камни / 1,8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 562: в `Ddl_transaction '

/ вар / Lib / камни / 1,8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 485: в `Мигрировать '

/ вар / Lib / камни / 1,8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 472: в `Каждый '

/ вар / Lib / камни / 1,8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 472: в `Мигрировать '

/ вар / Lib / камни / 1,8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 400: в `Вверх '

/ вар / Lib / камни / 1,8 / драгоценные камни / ActiveRecord-2.3.4 / Lib / active_record / migration.rb: 383: в `Мигрировать '

/ вар / Lib / камни / 1,8 / камни / Рельсы-2.3.4 / Lib / задачи / databases.rake: 116

/ var / lib / gems / 1.8 / gems / rake-0.8.7 / lib / rake.rb: 636: в `call '

/ var / lib / gems / 1.8 / gems / rake-0.8.7 / lib / rake.rb: 636: in `execute '

/ var / lib / gems / 1.8 / gems / rake-0.8.7 / lib / rake.rb: 631: in `each '

/ var / lib / gems / 1.8 / gems / rake-0.8.7 / lib / rake.rb: 631: in `execute '

/ var / lib / gems / 1.8 / gems / rake-0.8.7 / lib / rake.rb: 597: в `invoke_with_call_chain '

/ USR / Lib / рубин / 1,8 / monitor.rb: 242: в `Синхронизирует '

/ var / lib / gems / 1.8 / gems / rake-0.8.7 / lib / rake.rb: 590: в `invoke_with_call_chain '

/ var / lib / gems / 1.8 / gems / rake-0.8.7 / lib / rake.rb: 583: in `invoke '

/ вар / Библиотека / камни / 1,8 / драгоценные камни / грабли 0.8.7 / Библиотека / rake.rb: 2051: в `Invoke_task '

/ вар / Библиотека / камни / 1,8 / драгоценные камни / грабли 0.8.7 / Библиотека / rake.rb: 2029: в `Top_level '

/ вар / Библиотека / камни / 1,8 / драгоценные камни / грабли 0.8.7 / Библиотека / rake.rb: 2029: в `Каждый '

/ вар / Библиотека / камни / 1,8 / драгоценные камни / грабли 0.8.7 / Библиотека / rake.rb: 2029: в `Top_level '

/ вар / Библиотека / камни / 1,8 / драгоценные камни / грабли 0.8.7 / Библиотека / rake.rb: 2068: в `Standard_exception_handling '

/ вар / Библиотека / камни / 1,8 / драгоценные камни / грабли 0.8.7 / Библиотека / rake.rb: 2023: в `Top_level '

/ var / lib / gems / 1.8 / gems / rake-0.8.7 / lib / rake.rb: 2001: in `run '

/ var / lib / gems / 1.8 / gems / rake-0.8.7 / lib / rake.rb: 2068: в `standard_exception_handling '

/ var / lib / gems / 1.8 / gems / rake-0.8.7 / lib / rake.rb: 1998: в`запустите '

/ var / lib / gems / 1.8 / gems / rake-0.8.7 / bin / rake: 31 / usr / bin / rake: 19: в `load'

/usr / bin / rake: 19

Я читал о многих статьях, ссылающихся на «Объект не пропущен Константа X», где проблема в основном заключается в ссылках на модели с помощью lazy_loading или доступа к плагинам.Запрос 'user.rb' перед add_column или добавление User.new перед доступом к таблице пользователей не решает проблему.

Доступ к модели User в миграции до сбоя также не вызывает никаких проблем..

Самым странным в этой проблеме является то, что я перенес один и тот же код один день назад на другой сервер с такими же настройками и в рабочей среде, где миграция прошла без проблем.

любая помощь будет оценена!

Ответы [ 2 ]

0 голосов
/ 11 января 2011

Что-то неправильно настроено в настройках Amazon S3.Вам не хватает файла конфигурации S3 из каталога конфигурации?

0 голосов
/ 11 января 2011

Конечно, мне не нужно требовать модель User, но добавить класс User в Migration с помощью

class User < ActiveRecord::Base; end

вот и все, что нужно сделать.

Что еще предстоит проверить, так это то, почему модель пользователя не известна этой миграции ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...