Jeśli chcecie stracić 2 godziny z życia, to mam dla Was świetny sposób. Róbcie migracje pod 1.8.7 a testujcie i odpalajcie serwer pod 1.9.2 ;)

Wczoraj pracowałem nad pewnym kawałkiem kodu, dla którego dużo łatwiej jest robić:

rake db:migrate VERSION=0

niż tworzyć nowe migracje.

Z tego względu, jak nietrudno zauważyć, często zmieniały mi się takie dane jak np hash dla hasła. Nie byłoby w tym nic specjalnego, gdyby nie to, że mam dość mocno “zakorzeniony” w Rubym sposób generowania hasha. Był on zależny od pewnych metod w Rubym, w taki sposób, że po zmanie sposobu obsługi charów i stringów w 1.9.2, także on uległ zmianie. Skutkiem tego było to, że wynikowy hash generowany przez tą samą metodę w drzewie 1.8 i 1.9 różnił się znacząco.

Ta różnica, skutkowała tym, że nie dało się zalogować na konto usera. Oczywiście zanim dotarłem do przyczyny, minęły wyżej wspomniane 2 godziny.

Nie radzę Wam, bawić się jednocześnie 1.8.7 i 1.9.2, a jeśli już musicie i coś przestanie działać, to w pierwszej kolejności odpalcie wszystko tylko pod jedną z tych dwóch wersji.