Комментарии 32
Например у MySQL есть Workbench, удобный и бесплатный. И что очень важно — официальный, т.е. заточен под конкретную СУБД, развивается одновременно с ней, поддерживает нужные типы данных и прочие возможности, которые есть в самой СУБД. Для PostgreSQL не смог такого найти. На данный момент пользуюсь SQL Power Architect Community Edition (кстати, коммерческая версия стоит каких-то безумных денег). После долгих ковыряний, нашел как добавить в него нужные типы данных, такие как UUID или JSONB, но все равно его возможностей не хватает. Например, нельзя добавить связь между таблицами, находящимися в разных схемах. Да и вообще, на начальных этапах изучения, довольно трудно работать с инструментом, который не отражает всех возможностей и особенностей конкретной СУБД.
Я, увы, тоже не знаю такого инструмента. Правда, мне лично никогда и не нужна была программа, чтобы менять схему БД — я по-старинке считаю, что это надо делать скриптами, а не мышкой.
Но что совсем смешно, я до сих пор не смог найти даже инструмент, чтобы просто удобно рисовать ER-диаграммы, вообще без всякой привязки к конкретной БД.
А картинка в статье от безысходности нарисована руками в LibreOffice.
Одно время, я активно использовал Visual Pardigm, для рисования диаграмм.
У них есть Community Edition
После создания диаграммы, можно из неё генерить SQL

И причем, как вы и хотели,
Data Grip
В Data Grip, обнаружил вот такую функцию.

Такая возможность доступна если выделить один объект или группу объектов.
В результате, мы получим пригодный SQL для дальнейшего использования в любимой IDE или напрямую, через консоль.

А вот генерация через вкладку Tools -> DB -> Generate Database, действительно не доступна в Community Edition.
А вообще как сейчас работается с ERWin?
Раньше доводилось работать с 4й версией, но потом у них исчез BPWin, да и новых версий ERWin не наблюдалось и пришлось пересесть на VP, а сейчас смотрю уже аж 7я версия DM. Помнится в 4ке генерации для postgresql не было и использовали похожие для выгрузки БД с «обработкой напильником»)) А как сейчас у них с этим?
Спасибо. Полнотекстовый поиск Постгрес умеет, напишем со временем и про него.
Это всё хорошо пока не надо учитывать ещё какое поле в запросе.
Но она скорее идеологическая, поскольку он это тянет.
Насколько я помню, то Solr/Lucene/ElasticSearch с этим тоже могут справиться
Вопрос только как он это умеет… во многих usecases это крайне медленно. Ну и опять же лишние запросы туда сюда увеличивают время отклика.
т.е. если у вас задача по сути искать только по тексту то это наверное хороший вариант, а вот если полнотекстовый поиск у вас просто винтик в большой и связанной системе то лучше не отходить от кассы (postgres) далеко.
Разницу рассмотреть тоже иногда очень полезно.
Будет ли postgis?)
Она должна без проблем загрузиться на любую версию, начиная с 9.4.
А для Постгиса мы вряд ли сделаем свою демо-базу. Тем более, что там вроде есть над чем развлекаться (взять какой-нибудь openstreetmap).
Спасибо, подумаем.
Конечно делитесь! Спасибо, что нашли время этим заняться.
Спасибо! Мы, кстати, не так давно немного поменяли базу (описание изменений здесь: https://postgrespro.ru/education/demodb).
Посоветуйте, пожалуйста, какую литературу лучше использовать для изучения языка?
Пользуйтесь на здоровье.
Насчет литературы… Специальной книги про SQL именно для Постгреса, боюсь, пока не существует. Да и вообще сейчас с книгами про Постгрес на русском беда — есть что-то переводное, и то так себе.
Но вообще можно читать любую книгу про SQL, которых тысячи. Постгрес весьма близок к стандарту, так что проблем не должно быть. Порекомендовать что-то конкретное не готов, но можно попробовать сориентироваться по ассортименту приличных издательств и отзывам. Ну, как вариант.
postgres@host:/.../ psql -f demo_small.sql
...тут вывод, сообщений об ошибках нет
postgres=# \c demo
You are now connected to database "demo" as user "postgres".
demo=# \dt
No relations found.
ubintu 16.04, postgresql 9.5.5
Не могли бы вы выложить дамп, созданый утилитой pg_dump? (демо-база dvdrental из-под pg_restore поднялась).
Демонстрационная база данных для PostgreSQL