Rails Rake MySql Автоинкремент Проблема w db: Светильники: нагрузка - PullRequest
1 голос
/ 01 августа 2009

Я пытаюсь загрузить некоторые Rake Fixtures (rake db: fixtures: load) в базу данных MySql, и я вижу странное поведение со значениями AutoIncrement. Обычно это увеличивается на 1 для каждой вставки, что позволяет мне определять / создавать тесты. (Кстати - нормальное создание / вставка из скрипта работает правильно).

Однако, когда я загружаю из приборов, поле id назначается большое случайное число, а значение autoinc в таблице также является большим числом (1054583385) после загрузки. Кто-нибудь еще видел это?

FWIW это на Windows XP с MySql 5.0 (я также тестировал с MySql 5.1, обнаружил проблему и откатился до 5.0).

Кто-нибудь еще видел это - это известная ошибка / проблема?

ТИА

1 Ответ

1 голос
/ 01 августа 2009

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

Вы можете явно указать ID в ваших приборах, если это необходимо.

id: 1

Но действительно ли это имеет значение? Светильники предназначены для испытаний. Идентификатор ваших объектов не имеет значения, пока существуют отношения.

Вот соответствующая функция из класса Fixtures:

# Returns a consistent identifier for +label+. This will always 
# be a positive integer, and will always be the same for a given
# label, assuming the same OS, platform, and version of Ruby.
def self.identify(label)
  label.to_s.hash.abs
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...