Есть ли какая-нибудь оболочка Ruby CouchDB, которая ведет себя как адаптер ActiveRecord? - PullRequest
1 голос
/ 15 февраля 2011

Существует несколько хороших оболочек CouchDB, таких как SimplyStored, CouchFoo, CouchRest и другие, но ни одна из них, похоже, не имитирует адаптер ActiveRecord.Если быть точным, то, что мне нужно:

  1. Установка параметров доступа к базе данных в config/database.yml обычным способом вместо добавления некоторых магических команд к config/environments.rb.
  2. Поддержка команд генерации кода, таких как rails generate scaffold или rails generate model.
  3. Поддержка функций, общих для RDB и DDB (транзакции и т. Д.).

Чего я не ожидаю от них:

  1. Быть полностью совместимым с адаптерами реляционных баз данных (другими словами, я не ожидаю, что все будет работать после простого изменения adapter: couchdb на adapter: sqlite3).
  2. Подражать какой-либо конкретной функции ORM.

Итак, вопрос в том, существует ли такой адаптер уже?А если нет, то есть ли причина, по которой люди не реализуют это?Я думаю о том, чтобы написать такой адаптер самостоятельно или, возможно, добавить эту функциональность в какую-то существующую оболочку, но я хотел бы убедиться, что я что-то не пропустил.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2011

Хотя это не совсем то, что вы ищете, @langalex 'CouchPotato, основанный на CouchRest, является приблизительным: https://github.com/langalex/couch_potato

0 голосов
/ 15 февраля 2011

Итак, вопрос в том, существует ли уже такой адаптер?

Нет, его нет.

А если нет, есть ли какой-нибудьпочему люди не реализуют это?

Поскольку CouchDB не является реляционной базой данных.Если вам нужна RDB, то вы, вероятно, захотите использовать ActiveRecord, не заставляя базу данных документов вести себя как реляционная база данных.

CouchRest CouchModel - это проект, который использует API, очень похожий наActiveRecord.Фактически, он реализует ActionModel без потери акцента на том, что CouchDB не является реляционной базой данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...