тем не менее.
За свою жизнь мне удалось избежать великого и ужасного AR, и я всегда
старался делать проекты на DataMapper, а модели хранить в актуальном
виде в соответствующих файлах, а не все вперемешку в schema.rb.
Получается примерно так, есть некая сущность, например, товар, у
которого есть проперти :okp_code, где в стринговом виде указан некий
код. В какой-то момент удалось добыть базу расшифровок этих кодов, и
появилась табличка okp. Хочется, чтобы в товаре теперь была не
текстовая ссылка, а ссылка на таблицу okp. Делаю примерно так:
migration 15, :change_products do
up do
modify_table :products do
add_column :okp_id, Integer
end
Product.each do |product|
product.okp = Okp.first :code => product.okp_code
throw product.errors unless product.save
end
modify_table :products do
drop_column :okp_code
end
end
...
и потом со спокойной совестью удаляю строку
property :okp_code, String, length => 15
из файла маппинга
Локально всё отлично, но при деплое выйдет, что миграция не пройдёт,
потому что в маппинге уже нету поля okp_code (хотя в базе ещё есть),
Пока смирился с мыслью пойти спать, а утром потихоньку переползать на
положенный проекту Mongoid/MongoDB
--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
Комментариев нет:
Отправить комментарий