Работа с представлением Postgres/PostGIS в SQLAlchemy

Два вопроса:

  • я хочу создать представление в своей PostGIS-DB. Как добавить это представление в мою таблицу геометрии_columns?

  • Что мне нужно сделать, чтобы использовать представление с SQLAlchemy? Есть ли разница между таблицей и представлением для SQLAlchemy, или я могу использовать тот же способ использования представления, что и для использования таблицы?

извините за мой плохой английский.

Если есть вопросы по моему вопросу, пожалуйста, не стесняйтесь спрашивать, чтобы я мог попытаться объяснить это по-другому, возможно :)

Нико


person Nico    schedule 08.01.2010    source источник


Ответы (1)


Табличные объекты в SQLAlchemy имеют две роли. Их можно использовать для выдачи команд DDL для создания таблицы в базе данных. Но их основная цель — описать столбцы и типы табличных данных, из которых можно выбирать и в которые можно вставлять.

Если вы хотите только выбрать, то представление выглядит для SQLAlchemy точно так же, как обычная таблица. Достаточно описать представление как Таблицу с интересующими вас столбцами (даже не нужно описывать все столбцы). Если вы хотите использовать ORM, вам нужно объявить для SQLAlchemy, что некоторая комбинация столбцов может использоваться в качестве первичного ключа (подойдет любая уникальная комбинация). Объявление некоторых столбцов внешними ключами также упростит настройку любых отношений. Если вы не создадите для этого объекта таблицы, то это просто метаданные для SQLAlchemy, чтобы знать, как запрашивать базу данных.

Если вы также хотите выполнить вставку в представление, вам потребуется создать правила или триггеры PostgreSQL для представления, которые перенаправляют записи в нужное место. Я не знаю хорошего рецепта использования для перенаправления записи на стороне Python.

person Ants Aasma    schedule 08.01.2010
comment
Можно ли также автоматически загружать представление? Я получаю NoSuchTableError. - person Philipp der Rautenberg; 08.04.2011