Я пытаюсь выяснить, какое ORM (или другое решение) использовать в моем приложении Sails.js + PostgreSQL. Основным правилом является то, что он поддерживает тип данных jsonb
. К сожалению, Waterline
не (bottom of the page), поэтому я должен был найти обходное решение. Приложение представляет собой MicroService с очень специфической целью и функциональностью и не будет чем-то огромным или сложным.Какой ORM, который поддерживает JSONB, лучше с Sails
Я наткнулся на некоторые API, которые могут быть интегрированы: BedquiltDB и PostgREST, но они кажутся излишним для моих нужд. Поэтому я скептически отношусь к использованию любого из этих решений.
Затем я наткнулся на Sequelize и Bookshelf (with Knex). Были и другие варианты, но эти 2 казались наиболее популярными и популярными. Вот мои общие точки по отношению к обоим вариантам:
Sequelize
- Said иметь слабую общину и трудно найти ответы, но ТАК имеет х2 Q & А ватерлинии
- Said чтобы быть болью в заднице, когда у вашего проекта есть сложные отношения с объектами (если это означает «больше, чем обычные внешние ключи», то я могу сказать, что у меня не будет этого в моей настройке БД)
- Сказано, что у вас хорошая документация, но только для основ. Но я мог бы найти методы для всех основных и взаимосвязанных запросов, которые обычно используются, поэтому я не вижу здесь отрицательной стороны документов.
- Опоздает
jsonb
из коробки, и в основном любой другой тип, который мне понадобится - Мне нравится документация - это довольно подробно. И я нашел Tuts о том, как легко интегрировать его с парусами
Bookshelf
- Построить на KnexJS, который, кажется, мощный конструктор запросов. В принципе, вам нужно установить Knex, чтобы установить Bookshelf, так что у вас всегда есть и то, и другое. На мой взгляд, это недостаток, потому что мне придется использовать ORM + построитель запросов вместо одного ORM, чтобы удовлетворить все потребности, которые у меня есть.
- Поддерживает
jsonb
(из-за Knex) - Я действительно не люблю документы Книжной полки. Недостаточно примеров типовых деклараций (в разных случаях).
- Имеет гораздо меньше Q & A здесь, в SO, по сравнению с Sequelize. Итак, похоже, что сообщество слабее?
Я действительно копал на некоторых форумах, и у меня сложилось впечатление, что большинство людей придумывают Книжную полку перед Sequelize, хотя я не вижу этого таким образом.
Некоторые из моментов, которые я написал, могут быть неверными, на самом деле, поэтому я прошу еще нескольких мнений о том, какое решение вы бы использовали? Другие, кроме упомянутых, приветствуются, если есть факты о том, зачем их использовать.
Sequelize и Knex не поддерживают полную функцию postgresql 9.6 Функции JSONB https://www.postgresql.org/docs/9.6/static/functions-json.html – stackdave