Сегодня 4 мая, суббота ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7272
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
GiNeR's Blog
GiNeR's Blog
Голосов: 1
Адрес блога: http://maximum-value.blogspot.com/
Добавлен: 2008-02-19 12:37:50 блограйдером Lurk
 

Rails 3 + SQLite до версии Rails v3.2.2 и после

2012-12-06 21:14:00 (читать в оригинале)

Столкнулся с проблемой при обновлении Redmine с версии 1.x на 2.x и решал её несколько дней. Оказывается разработчики Rails ИЗМЕНИЛИ ФОРМАТ ХРАНЕНИЯ БИНАРНЫХ ДАННЫХ при использовании SQLite и даже НЕ СООБЩИЛИ об этом в Changelog-е!

До версии 3.2.2 перед помещением данных в базу экранировались два символа, 0x00 и 0x25, их переводом в текстовое представление в, соответсвенно, и %25. А начиная с версии 3.2.2 эта часть кода была убрана и вы получаете НЕЦЕЛОСТНЫЕ ДАННЫЕ при попытке достать их с помощью Active Record.

Мне повезло, в моём случае эти данные были сжатыми и, соответственно, проверялись на целостность, так что данные просто не прочитались, но вот те, у кого целостность бинарных данных в базе не проверяется, поимеют большие проблемы при переезде с Rails до версии 3.2.2 (в том числе с любой версии 2.x) на более поздние.

Ссылки на это злополучное изменение:
- https://github.com/rails/rails/compare/v3.2.1...v3.2.2
- sqlite_adapter.rb commit
- pull request
Багрепорт в Redmine:
- http://www.redmine.org/issues/12501

Тэги: bug, linux, rail, redmine, unix

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.