Можно ли использовать SQLAlchemy самостоятельно, независимо от фреймворка, и рекомендуется ли это? - PullRequest
3 голосов
/ 06 ноября 2011

Я хочу использовать Node.js в качестве моей платформы, но у него нет хорошего способа управления схемами и миграциями MySQL.

Могу ли я использовать SQLAlchemy самостоятельно?Просто для синхронизации таблиц и создания столбцов и т.д ....?

А затем в моем файле node.js я бы НЕ использовал SQLAlchemy для запроса или вставки ...

Это рекомендуется?

Ответы [ 3 ]

2 голосов
/ 07 ноября 2011

Да, это можно сделать.Хотя у меня нет опыта работы с Node.js, я использовал SQLAlchemy для:

  • настройки небольших баз данных для приложений, отличных от SQLAlchemy.
  • запрос, обновление ипереносить базы данных, которые не были созданы с помощью SQLAlchemy.
  • подключать новые приложения, использующие SQLAlchemy, к существующим базам данных MySQL.

При использовании только для настройки базы данных необходимо учитывать один аспект:любые каскады или другие детали ссылочной целостности, которые вы выберете в своей модели, не будут применяться самим MySQL.Я знаю, что можно позволить бэкэнд-дескриптору обновлять или удалять каскады с опциями passive_deletes и passive_updates, но я не знаю, можете ли вы или как автоматически создать эти правила на бэкэндечерез SQLAlchemy.

1 голос
/ 10 ноября 2011

Я использую SQLAlchemy-migrate для создания / обновления / понижения схемы базы данных. Это позволяет вам проектировать схему как модель SQLAlchemy или простые операторы SQL (или смешанные). Вы создаете «версии» шагов обновления / понижения для своей схемы в локальном хранилище, которые затем применяете к любой базе данных, с которой может общаться SQLAlchemy.

0 голосов
/ 07 ноября 2011

Хотя использование инструментов миграции SQLAlchemy является хорошей идеей, некоторые из ORM для узла фактически выполняют разумную работу по решению проблемы миграции. Например, Persistence JS может синхронизировать базу данных до свойств, объявленных в вашем файле JS.

Сказав это, SQLAlchemy - отличный выбор, я считаю, - он достаточно гибок, чтобы обрабатывать любую структуру базы данных, которую вы можете использовать (в отличие от чего-то вроде ActiveRecord в Ruby, который делает предположения, которые могут быть или не быть верными в вашем случае) .

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