2012-05-09 3 views
3

Возможно ли, чтобы datamapper генерировал модели из существующей схемы базы данных? Итак, чтобы сделать обратную миграцию, которая берет модели и генерирует sql. Я хочу, чтобы схема базы данных генерировала модели.Генерировать модели данных из существующей базы данных

ответ

1

В конце концов, я обнаружил, что до сих пор лучшим решением является использование dm-is-reflective plugin: https://github.com/godfat/dm-is-reflective.

Он не генерирует код для моделей DataMapper, отражающий существующую схему базы данных, но его методы доступа к свойствам автоматически доступны (при условии, что вы продолжаете использовать этот плагин, конечно).

Вот пример использования:

require 'data_mapper' 
require 'dm-is-reflective' 

DataMapper.setup(:default, "postgres://user:[email protected]/db") 

class Table 
    include DataMapper::Resource 

    is :reflective #activate dm-is-reflective 

    reflect #reflects eeach property. You can be more specific (look at plugin documentation) 
end 

DataMapper.finalize 

#Even if no field is defined, all of them are accessible 
entry = Table.first(nil, {:id => 469}) 
print entry.anotherField 
2

попытаться проверить https://github.com/yogo/dm-reflection или любой из его вилки ..

+0

Спасибо @TomMeinIschmidt за ваш ответ. Я обновил ответ, чтобы указать на вилку Yogo, которая теперь является официальным репозиторием. Но мне не повезло. 'dm-reflection' довольно мертв. В репозитории Yogo есть ветка, которая должна работать с DataMapper 1.0, но по крайней мере для меня это не сработало. Его установка не работала, но я решил ее, но все равно не работал. Я думаю, что у него есть некоторые нарушенные зависимости. Я нашел другое решение, которое я отправляю прямо сейчас. –

Смежные вопросы