среда, 29 июня 2011 г.

Re: миграции с удалением полей

Не вижу необходимости, локально работает и так. (магия DataMapper?).
Проблема-то не в этом, а в консистентности и актуальности файла
маппинга.
Пока вижу выход - делать деплой и миграции после создания каждой оной
миграции. Просто для продакшна это не всегда возможно.

On Jun 29, 11:52 am, "a.ognevsky" <a.ognev...@gmail.com> wrote:
> Могу ошибаться, но перед циклом бы сделать Product.reset_column_information
>
> --
> Andrey Ognevsky
>
>
>
> On Wednesday, June 29, 2011 at 3:34 AM, Phil Pirozhkov (pirj) wrote:
> > Возможно, вопрос глупый с точки зрения рельсовика-активрекордщика, но
> > тем не менее.
> > За свою жизнь мне удалось избежать великого и ужасного 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

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "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

Комментариев нет:

Отправить комментарий