Налаштування бази даних PostGIS і відкриття її в QGIS в Windows?


15

Я намагався дотримуватися посібників зі створення бази даних PostGIS, до якої звертаються користувачі з QGIS, але на даний момент я не можу зрозуміти достатньо, щоб прогресувати?

Моя ситуація; Я - стажер, відповідальний за створення бази даних PostGIS для оцифрування зелених об'єктів (наприклад, дерев) та виконання запитів - наприклад, зв’язування списку вулиць із файлами зображень до таблиці атрибутів.

У мене є "скелетів shapefile" (наразі порожній без об'єктів, просто кадр атрибутів ", куди будуть вставлені / створені поточні та майбутні геореференційні об'єкти (різний файл форм для кожного типу). Я вірю, що я можу просто імпортувати ці формати скелету в база даних?

Ситуація;

Ми працюємо в окремій будівлі з власною локальною мережею та інтернетом із резервним сервером для кожного файлу. Тож у нас є локальний доступ до файлів та файли, якими ми ділимось через Інтернет-з'єднання

Налаштування бази даних здійснено адміністратором через віддалений доступ, використовуючи останні файли виконання .exe PostGIS та PostgreSQL (postgresql-9.6.2-3-windows-x64 & postgis-bundle-pg96x64-setup-2.3.2 -1) для моєї 64-бітної машини. Адміністратор надав мені текстовий файл із інформацією про вхід. Навчальні посібники тут досить заплутані, оскільки вони мають справу з Ubuntu.

Я застряг, оскільки не знаю, де використовувати дані для входу, які я записав? Я припускаю, що мені потрібно використовувати pgAdmin?


Так я встановлюю PostGIS у Windows - у простій установці get.enterprisedb.com/docs/…, тоді QGIS легко з’єднається з вказаними вами іменем користувача та паролем.
Mapperz

1
Я б точно радив встановити pgAdmin 3 для роботи з вашою базою даних. Зараз є pgAdmin4, ви можете також одночасно встановити це, щоб побачити, який з них ви віддаєте перевагу.
Мартін Хюгі

Зачекайте, то куди ж піти в QGIS і які файли мені слід встановити в стекбілдері? Редагувати nvm: знайшов це зараз мені потрібно знайти, які локальні записи хоста та служби я повинен зробити.
ThunderSpark

Postgis встановить необхідний "сервер" локально. Це так, як працює база даних - ви використовуєте QGIS для підключення "живого" через сервер (localhost).
Mapperz

Відповіді:


24

Це здається, ніби ваш адміністратор успішно встановив базу даних і надав вам потрібні дані. Можливо, вони також налаштували PostGIS під час встановлення, але якщо ні, ви можете перевірити це, проходячи ці кроки.

Спочатку попросіть свого адміністратора встановити pgAdmin, це дозволить вам отримати доступ до вашої бази даних PostgreSQL з графічним інтерфейсом.

https://www.pgadmin.org/download/windows.php

Відкрийте pgAdmin

Якщо ваш PostgreSQL встановлений;

  • на вашому комп’ютері він відобразиться як localhost, ви повинні мати можливість двічі клацнути на "PostgreSQL (версія версії) (localhost: 5432)", щоб підключитися до нього.

введіть тут опис зображення

  • Якщо він був встановлений в мережі, вам знадобиться адміністратор, щоб повідомити адресу хоста (якщо у вас цього ще немає), тоді вам потрібно буде перейти до Файл> Додати сервер і заповнити поля;

введіть тут опис зображення

Після підключення перейдіть до Edit > New Object > New Database

Дайте ім’я. Він з’явиться у вашому списку серверів.

Двічі клацніть для підключення до нього. Перевірте, Extensionsчи немає у ньому списків postgis.

Якщо ні;

Відкрийте вікно SQL, натиснувши на іконку SQL

введіть тут опис зображення

і введіть

CREATE EXTENSION PostGIS

Натисніть "Виконати запит" - цей значок введіть тут опис зображення

Клацніть правою кнопкою миші на базі даних у списку та відключіться, а потім знову підключіться. Тепер розширення повинні бути postgisперелічені.

Ви можете налаштувати нову групову роль і роль входу в цей момент, це здається так, ніби ви повинні враховувати потреби безпеки та своїх користувачів у мережі.

Або якщо ви просто хочете перевірити його, ви можете продовжувати виконувати роль за замовчуванням postgres.

Можна встановити різні групи з різними дозволами, наприклад, адміністратор та користувач. Потім входи користувачів можуть бути налаштовані та призначені для будь-якої групи, що відповідає рівню дозволу, який ви хочете надати користувачеві, або ви можете надати доступ до всіх таблиць адміністратору, і лише до деяких користувачів тощо. Можливо, вам не потрібна група адміністратора.

Відкрийте вікно SQL і виконайте ці запити;

CREATE ROLE user_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE admin_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

GRANT user_group_name TO admin_group_name

GRANT ALL ON DATABASE database_name TO admin_group_name;

Налаштування входу для адміністратора (увійшов як постгрес / суперрусер)

CREATE ROLE admin_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT admin_group_name TO admin_name;

Налаштування входу для користувача (увійшов як постгрес / суперрусер)

CREATE ROLE user_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT users_group_name TO user_name;

Відкрийте QGIS. Почніть новий проект.

Клацніть на піктограмі «Додати шар PostGIS» на панелі ліворуч.

введіть тут опис зображення

Клацніть на "Нове" з'єднання та введіть дані про з'єднання, як зазначено вище (якщо ваша база даних локальна, то хост просто localhost).

Ви можете перевірити з’єднання в цей момент. Якщо ви встановите прапорець "Зберегти" у полі ім'я користувача та пароля, він зберігатиме ваші облікові дані у вашому профілі, тому вам не потрібно вводити кожен раз. Залежить від вас, залежно від ваших потреб у безпеці.

Натисніть ОК та закрийте "Додати вікно таблиці PostGIS"

Потім перейдіть до Database > DB Manager > DB Manager (Останні версії QGIS мають стандартний встановлений менеджер DB, більш ранні версії вам потрібно буде встановити плагін DB Manager)

Виберіть PostGIS. Буде показана загальнодоступна схема загального користування. Це здається, ніби вам слід створити нову схему, а не використовувати загальнодоступну.

Схема> Створити схему - дайте ім'я ( no_spaces_or_use_underscores)

Після створення можна перевірити, повернувшись до pgAdmin, відключившись, підключившись. Нова схема повинна бути там.

Повернутися до менеджера БД QGIS, щоб завантажити файл форми у таблицю в базу даних.

Клацніть стрілку вниз «Імпортувати шар / файл», перейдіть до файлу форми, який потрібно імпортувати. Клацніть піктограму `...` `, щоб відкрити перегляд.

Дайте таблиці назву ( again_no_spaces_or_use_underscores)

Виберіть Primary key

Виберіть Geometry Column

Виберіть SRIDі введіть код CRS

А поки залиште все інше і OK.

Якщо це великий набір даних, це може зайняти деякий час, особливо через мережеве / інтернет-з'єднання

Знову можна повернутися до pgAdmin, натиснути оновити цього разу, і нова таблиця з'явиться в Tables.

Якщо ви встановили групові ролі та користувачів, вам, наприклад, потрібно надати доступ до схеми;

GRANT ALL ON SCHEMA schema_name TO admin_group_name;
GRANT USAGE ON SCHEMA schema_name TO user_group_name;

Повернутися до QGIS та "Додати шар PostGIS". Цього разу виберіть Підключити. Відкрийте схему та виділіть таблицю та натисніть «Додати», і вона відкриється у вашому проектному просторі.


Здається, вони встановили PQadmin 4, я надаю пароль, коли програма його запитує, але я отримую "не зміг перекласти ім'я хоста" postgres // * communityname123 "на адресу: Невідома помилка сервера". Отже, що мені тут робити, майте на увазі, що я працюю з PQadmin4 і є лише один сервер PostGre SQL 9.6. Тож я припускаю, що це встановлений на них сервер PostGre QSL, але вони можуть зробити щось не так з конфігурацією адреси. Тож чи потрібно мені тут їх повідомити чи я роблю щось не так? * = датчик.
ThunderSpark

1
Спробуйте "localhost" як ім'я хоста, щоб просто вимкнути це чи вийти. Тоді, якщо ні, попросіть свого адміністратора про шлях до місця, де розміщені постгреси в мережі, вони повинні мати змогу надати вам це. Це, мабуть, просто синтаксис, або щось не вказано в адресі.
Мартін Хюгі

Дякую, що ви працювали, виявляється, що вони помилилися, змінивши ім'я користувача на superuser, Postgres тощо. Я дотримуюся решти інструкцій і побачу, чи працює вона. Дякую, мартіне
ThunderSpark

Оке, працює Мартіне, чи можете ви додайте решту, як зробити базу даних для групи, яка працює тут?
ThunderSpark

Швидко додав кілька сценаріїв, мені довелося чекати перерви на обід, тому трохи поспішив. Вони повинні працювати.
Мартін Хюгі

2

Схоже, ваш проект буде достатньо працювати над портативною установкою postgres / postgis. Я робив це для своїх студентів деякий час тому, щоб вони могли скопіювати папку postgresl на USB-паличку та використовувати її на кожному ПК Windows:

  1. Завантажте postgresql як поштовий файл
  2. Розпакуйте його
  3. Завантажте postgis (postgis-bundle-pg96-2.3.1x32.zip або x64), відповідно до вашої системи
  4. Розпакуйте його та скопіюйте у папку postgresql
  5. Використовуйте це пояснення для "встановлення" Postgres як портативної версії: http://www.postgresonline.com/journal/archives/172-Starting-PostgreSQL-in-windows-without-install.html
  6. Необов’язково змінити pg_hba.conf та додати / замінити "хост всіх усіх 127.0.0.1/32 довіри" - це дозволяє отримати доступ з вашого ПК до бази даних без перевірки пароля, що в цьому випадку нормально, але це не потрібно у виробничих середовищах
  7. Підключіться до бази даних за допомогою pgadmin3
  8. Створіть нову базу даних та виконайте "CREATE EXTENSION postgis;"

Тепер ви маєте можливість працювати з postgesql / postgis та отримувати доступ до db на своєму ПК. Зауважте, що це швидке та брудне рішення, яке працює в освітніх цілях, але не у виробничому / мережевому середовищі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.