Portable pgadmin: PgAdmin Portable? | PortableApps.com
Содержание
Переносная установка для PostgreSQL в Windows
Обычный метод использования PostgreSQL на вашем компьютере с Windows заключается в загрузке установщика и последующей его настройке. Это легко и сделает все необходимое, что вам нужно для этого. Он также настроит службы и другие вещи, которые могут вам понадобиться. С другой стороны, если вы используете PostgreSQL только несколько раз и не хотите, чтобы он работал постоянно, или если вы хотите использовать разные версии и хотите, чтобы они время от времени включались, или если вы просто хотите портативную установку, которую вы можете скопировать на любой компьютер и запустить ее, тогда этот пост для вас.
Вы должны рассматривать это только как персональный сервер разработки, а не для совместного использования или развертывания и т. д. без защиты.
Скачать пакет
Во-первых, нам нужно скачать PostgreSQL. Главная страница загрузки отправляет вас на страницу загрузки Windows, которая указывает на установщик из EDB. Однако нам не нужен двоичный файл, поэтому вместо этого мы переходим на страницу, на которой размещен ZIP-архив.
Возьмите нужную версию базы данных PostgreSQL — я выбрал версию 12.5, так как хочу что-то на ней попробовать. Сохраните архив на свой компьютер. Предположим, что он находится в вашей папке загрузок.
Подготовка папки для установки
Далее нам нужно создать место, где мы будем распаковывать и хранить бинарные файлы. Для такого использования я создал папку под названием stack
, где я храню различные части стеков, с которыми я хочу играть. В моем случае базовая папка становится d:\stack
, и я добавляю туда что-то. Прежде чем продолжить, я хотел бы порекомендовать вам настроить папку для сжатия содержимого, чтобы сэкономить место на диске, как описано в разделе «Прежде чем мы начнем» в этом другом посте, поскольку со временем это может сэкономить вам довольно много места.
Предположим, что у нас есть что-то вроде:
.
- основная папка стека:
d:\stack
- Папка PostgreSQL 12.5:
d:\stack\pg-12.5
(по возможности избегайте пробелов в именах этих каталогов)
Извлечь файлы
Теперь вы можете извлечь файлы из архива, который вы загрузили, в pg-12.5
— когда вы это сделаете, вы, вероятно, получите другую папку с именем pgsql
, которая фактически будет содержать остальные папки (bin, doc , включать и др.). Я предпочитаю просто вырезать и перемещать все файлы на один уровень выше, чтобы папки (bin, doc, include и т. д.) находились прямо под d:\stack\pg-12.5
, а затем я удаляю уже пустую папку pgsql.
Хорошо — теперь нам нужно подготовить еще кое-что, чтобы мы могли запустить PostgreSQL.
Фон — то, что нам нужно
Перед запуском PostgreSQL (любой версии) нам нужно установить несколько переменных среды, которые требуются для исполняемого файла. Пока они установлены правильно, он запустится нормально:
- ПУТЬ — это наш путь к Windows, и нам нужна правильная версия PostgreSQL, чтобы она была первой в пути
- PGDIR — это базовый каталог для установки PostgreSQL. В нашем случае это
d:\stack\pg-12.5
- PGDATA — это каталог, в котором мы хотим, чтобы PostgreSQL хранил данные (по сути, здесь находится «база данных») — он может указывать либо на установку, либо на путь к папке где-то еще (мы установим в разделе «данные ‘ под самим PGDIR для простоты)
- PGLOCALEDIR — здесь находятся файлы локали (в настройках это PGDIR\share\locale)
- PGPORT — это порт, на котором будет работать сервер. Порт 5432 является традиционным для PostgreSQL, но вы можете его изменить. Каждая работающая установка должна быть на своем собственном порту. Итак, если у вас уже что-то работает на 5432, вам нужно будет изменить. Я часто использую такие порты, как 5440, 5441 и т.д.
- PGDATABASE — это база данных по умолчанию для postgres (обычно мы устанавливаем это как «postgres»)
- PGUSER — это пользователь-администратор для установки (опять же, обычно «postgres»)
- PGLOGS — наконец, путь к файлу журнала
Как только они будут установлены, нам нужно использовать pg_ctl
для управления PostgreSQL — для запуска и остановки сервера.
Однако, прежде чем мы сможем запускать и останавливать сервер, нам нужно создать новый кластер базы данных PostgreSQL — это также делается с помощью pg_ctl
с помощью подкоманды initdb
. Для этого нам нужно добавить в командную строку еще 3 параметра:
- -A trust : указывает PostgreSQL доверять всем локальным соединениям; см. примечание ниже
- -U postgres : это устанавливает локального суперпользователя как postgres (что является традиционным)
- -E UTF8: для простоты и совместимости я предпочитаю использовать для сервера кодировку UTF-8
Примечание: Здесь мы устанавливаем аутентификацию , доверяем
— не делайте этого, если вы не доверяете пользователям на локальном компьютере. Доверять удобно, когда вы делаете это только на своем персональном компьютере, играя с вещами. Вы можете изменить его на другой тип аутентификации, изменив pg_hba.conf
— найдите это, если вам это нужно.
Хорошо, давайте настроим все, что нам нужно.
Наши сценарии
Итак, что мы сделаем дальше, так это создадим 4 командных файла, которые мы можем использовать для этой цели:
- pg-12-vars.cmd : это просто установит переменные, чтобы после этого вы могли использовать любые другие утилиты из командной строки, которым нужно установить эти переменные. Все остальные командные файлы будут вызывать это для установки переменных перед их выполнением.0030
- pg-12-start.cmd : это запустит сервер
- pg-12-stop.cmd : это остановит сервер
- pg-12-init.cmd : инициализирует кластер
Все команды настроены следующим образом:
@ЭХО ВКЛ. :: Сохраните каталог, в котором мы находимся нажать %CD% :: Переместить каталоги на правильный путь %~d0 cd%~dp0 :: Установить переменную с помощью общего файла вызовите pg12-vars.cmd :: Фактическая команда, которая должна что-то сделать "%PGDIR%\bin\pg_ctl" <---- фактические параметры: start, stop, initdb -----> :: Восстановить каталог, откуда мы начали попд
Чтобы разрешить запуск кода из любого места, мы делаем это:
- Сначала мы сохраняем текущий каталог, откуда он называется
- Затем мы переходим в каталог, где хранится исполняемый скрипт
- После этого мы запускаем pg-12-vars. cmd с помощью вызова, чтобы управление вернулось в наш файл команд
- Затем мы выполняем реальную команду
pg_ctl
, которая нужна этому сценарию - Наконец, мы возвращаемся обратно в каталог, из которого мы выполнили эту команду
Мы поместим эти командные файлы в основание стека, т. е. по адресу D:\Stack
, и в этом случае общая конфигурация будет:
@SET PATH="%~dp0\pg-12.5\bin";%PATH% @SET PGDIR=%~dp0\pg-12.5 @SET PGDATA=%PGDIR%\данные @SET PGLOCALEDIR=%PGDIR%\доля\локаль @УСТАНОВИТЬ PGPORT=5412 @SET PGDATABASE=постгрес @SET PGUSER=постгрес @SET PGLOGS=%~dp0\logs\pg-12.5\logfile
Примечание к журналам: Обычно я предпочитаю отправлять журналы по общему пути до d:\stack
, а не в отдельные инсталляции (легче чистить при небрежной работе). По этой причине вы увидите, что путь к файлу журнала находится под d:\stack\logs\pg-12.5
, а не под d:\stack\pg-12.5\logs
— установите это, как вы чувствуете. хочу это.
Различные строки pg_ctl должны быть:
Для инициализации: Добавьте дополнительные параметры, как мы обсуждали выше.
"%PGDIR%\bin\initdb" -U postgres -A trust -E UTF8
Для запуска: Скажите, где должна быть база данных и какой у нас файл журнала, и попросите запустить
"%PGDIR%\bin\pg_ctl" -D "%PGDATA%" -l "%PGLOGS%" начало
Для остановки: Скажите, где должна быть база данных и какой у нас файл журнала, и попросите остановить
"%PGDIR%\bin\pg_ctl" -D "%PGDATA%" -l "%PGLOGS%" остановка
Запуск наших скриптов
Теперь, когда у нас есть четыре командных файла, мы готовы приступить к работе.
Инициализация
Сначала мы запускаем команду инициализации.
D:\стек>pg12-initialize.cmd D:\стек>pushd D:\стек Д:\стек>Д: D:\стек>cd D:\стек\ D:\стек>вызвать pg12-vars.cmd D:\stack>Подготовка ECHO к PostgreSQL 12. " -l начало файла журнала
Все это выглядит хорошо и соответствует нашим ожиданиям. Если вы сейчас запустите set pg
в том же командном окне, вы увидите, что переменные среды были установлены для PostgreSQL 12.5, как мы и ожидали.
D:\стек>установить стр. PGDATA=D:\стек\\pg-12.5\данные PGDATABASE=postgres PGDIR=D:\стек\\pg-12.5 PGLOCALEDIR=D:\стек\\pg-12.5\доля\локаль PGLOGS=D:\стек\\журналы\pg-12.5\файл журнала PGPORT=5412 PGUSER=постгрес
Запустить сервер
Теперь мы можем запустить сервер. Итак, запускаем — и не получается (!!)
D:\stack>"D:\stack\\pg-12.5\bin\pg_ctl" -D "D:\stack\\pg-12.5\data" -l "D:\stack\\logs\pg-12.5 \logfile" начать ожидание запуска сервера... Система не может найти указанный путь. перестал ждать pg_ctl: не удалось запустить сервер Изучите вывод журнала.
Расслабься! Это ожидаемо — мы не создавали каталог журналов, хотя ожидаем, что PostgreSQL будет его использовать. Просто создайте каталог D:\stack\logs\pg-12. 5
(или что-то другое, на что вы его настроили) и повторите попытку. На этот раз вы видите это, как и ожидалось.
D:\stack>ECHO Подготовка к PostgreSQL 12.5 Подготовка к PostgreSQL 12.5 D:\stack>"D:\stack\\pg-12.5\bin\pg_ctl" -D "D:\stack\\pg-12.5\data" -l "D:\stack\\logs\pg-12.5\ лог-файл" начать ожидание запуска сервера.... готово сервер запущен
Если вы откроете Диспетчер задач, вы должны увидеть, что postgres работает.
Подключиться к серверу
PostgreSQL теперь поставляется с разделяющим мнения PgAdmin4, который можно запустить, запустив исполняемый файл на D:\stack\pg-12.5\pgAdmin 4\bin\pgadmin4.exe
— это запустит графический веб-интерфейс, с помощью которого вы сможете подключиться к серверу. Когда он начнется, он покажет вам этот экран (я сделал его немного позже, поэтому он также предполагал, что это занимает больше времени, чем обычно — нажатие на уведомление заставило его исчезнуть).
Однако он открыл новое окно браузера с загруженным PgAdmin и запросом на установку мастер-пароля. Вам нужно будет сделать это, прежде чем вы сможете получить доступ к серверам и т. д., используя его.
Создав его, вы можете нажать Добавить новый сервер. Во-первых, мы заполняем некоторые данные для идентификации сервера:
Затем мы вводим данные нашего сервера, как мы установили их в среде:
- Имя/адрес хоста: localhost
- Порт: 5412
- База данных обслуживания: postgres
- Пользователь: postgres
Нажмите «Сохранить», и он добавит сервер на левую панель — разверните его, и вы увидите, что сервер работает! Это в прямом эфире!
Остановить сервер
Здесь нет ничего захватывающего. Просто запустите pg12-stop.cmd
и все готово.
D:\stack>"D:\stack\\pg-12.5\bin\pg_ctl" -D "D:\stack\\pg-12.5\data" -l "D:\stack\\logs\pg-12.5 \logfile" стоп ожидание выключения сервера.... готово сервер остановлен
Если вы запускали PgAdmin4, вы могли пропустить, что он добавил сервер в область уведомлений. Вам нужно будет щелкнуть по нему правой кнопкой мыши и «выключить сервер» — это легко пропустить в первый раз.
Дополнительное чтение
Эти страницы полезны:
- Описание pg_ctl находится на сайте документации PostgreSQL — оно включает в себя все, что вы можете с ним делать, а также пояснения к основным параметрам, которые мы установили.
- Точно так же есть страница, описывающая initdb
Как всегда, это для меня, чтобы помнить, как это сделать, но если это кому-то поможет, это здорово! Кроме того, если у вас есть комментарии, добавьте их ниже, чтобы я мог отразить изменения здесь.
Приложения, требующие дополнительной работы — документация Portable GIS 5.6.8 ).
Извлеките папку pgsql
из ZIP-файла и скопируйте ее в папку приложений.
В документации и настройках используются следующие учетные данные:
PostgreSQL настроен со следующими параметрами:
- Имя пользователя: pgis
- Пароль: pgis
- Порт: 3432
- Хост: локальный или 127. 0.0.1
- База данных шаблонов с пространственной поддержкой: template_postgis
Создайте на своем компьютере пользователя с именем pgis
с паролем pgis
и откройте командную строку от имени этого пользователя. Перейдите в каталог apps\pgsql\bin
и инициализируйте базу данных следующим образом:
> initdb.exe --pgdata=..\..\..\PGDATA --username=pgis --locale =english_UK --encoding=UTF8
Скопируйте файлы из папки pgsql
в репозитории Portable GIS в вашу папку pgsql
, перезаписывая при необходимости.
(На этом этапе вам, вероятно, следует перенести свою сборку на настоящий USB-накопитель, чтобы вы могли запускать postgresql с помощью пакетного файла start_pgsql.bat и обрабатывать любые сообщения об ошибках).
Обратите внимание, что в папке apps\pgsql
есть файл pgpass.conf, который следует отредактировать, если вы измените учетные данные по умолчанию. Это используется путем установки переменной среды PGPASSFILE при запуске postgresql.
pgAdmin 4
PgAdmin 4 настроен для работы с фиксированным портом 5436 и в предоставленной версии Firefox. Чтобы изменить номер порта, отредактируйте pgsql\pgAdmin 4\web\config_local.py
и измените значение DEFAULT_SERVER_PORT
.
PostGIS
Загрузите zip-файл (в настоящее время версия 2.5) с сайта download.osgeo.org и извлеките содержимое в каталог pgsql, перезаписав его при необходимости.
Создайте новую базу данных (например, template_postgis) и в окне SQL запустите создать расширение postgis
Чтобы сделать его шаблоном, выполните следующее:
UPDATE pg_database SET datistemplate = true WHERE datname = 'template_postgis';
ПРЕДОСТАВИТЬ ВСЕ НА Geometry_columns ПУБЛИЧНЫМ;
ПРЕДОСТАВИТЬ ВСЕ НА пространственные_ref_sys ДЛЯ ПУБЛИЧНЫХ;
QGIS
Загрузите 32-битную автономную программу установки qgis (версия 3. 4.5) с сайта загрузки QGIS и установите ее на ПК с Windows. Скопируйте папку C:\Program Files\QGIS 3.4
в папку apps
, переименовав ее в qgis
, а затем примените файлы из папки qgis
в репозитории Portable GIS в то же место, перезаписав при необходимости.
QGIS может наследовать настройки от других версий qgis, установленных на вашем компьютере. Если у вас возникли проблемы с его запуском, попробуйте удалить все файлы *.env
из [путь к папке usbgis]\apps\qgis\bin
.
Java 8 jdk
Oracle jdk8 предоставляется в репозитории Portable GIS, но если вы хотите создать свой собственный, следуйте приведенным ниже инструкциям. Эти инструкции изначально были получены с brucalipto.org и воспроизведены здесь на случай, если этот сайт больше не доступен.
Загрузите копию исполняемого файла jdk версии 8 для Windows 32bit (X86) от oracle
Откройте загруженный исполняемый файл с помощью 7-zip и извлеките файл tools. zip внутри в папку инструментов.
На этом этапе у вас должна быть следующая структура папок
jdk_8\tools
Откройте командную строку в каталоге инструментов и выполните следующую команду, заменив правильную букву диска:
> для /r %x в (*.pack) выполните C:\jdk_8\tools\bin\unpack200 "%x" "%x.jar"
Найдите и переименуйте все файлы .pack.jar, находящиеся в папке инструментов и вложенных папках:
> каталог /B /S *.pack.jar
C:\jdk_8\tools\jre\lib\charsets.pack.jar
C:\jdk_8\tools\jre\lib\deploy.pack.jar
C:\jdk_8\tools\jre\lib\javaws.pack.jar
C:\jdk_8\tools\jre\lib\jsse.pack.jar
C:\jdk_8\tools\jre\lib\plugin.pack.jar
C:\jdk_8\tools\jre\lib\rt.pack.jar
C:\jdk_8\tools\jre\lib\ext\jfxrt.pack.jar
C:\jdk_8\tools\jre\lib\ext\localedata.pack.jar
C:\jdk_8\tools\lib\tools.pack.jar
> ren C:\jdk_8\tools\jre\lib\charsets.pack.jar charsets.jar
> ren C:\jdk_8\tools\jre\lib\deploy.pack.jar deploy.jar
> ren C:\jdk_8\tools\jre\lib\javaws.