Debemos crear el script install_postgres_12.sh con el siguiente contenido:
# Ref: https://www.postgresql.org/download/linux/ubuntu/
# Create the file repository configuration:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# Update the package lists:
sudo apt-get update
# Install the latest version of PostgreSQL.
# If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql':
sudo apt-get -y install postgresql-12 postgresql-client-12
La instalación habrá creado el usuario de administración postgres.
Posteriormente, creamos una password para el usuario postgres:
sudo -i -u postgres
psql -c "alter user postgres with password 'nuestra_password'"
Podemos revisar la versión de Postgres en funcionamiento:
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
10 main 5432 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
12 main 5433 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
13 main 5434 online postgres /var/lib/postgresql/13/main /var/log/postgresql/postgresql-13-main.log
Cambio a usuario postgres en sistema operativo:
sudo -i -u postgres
psql
o en un sólo paso:
sudo -u postgres psql
Si deseamos importar una base de datos llamada nombre_db.sql ejecutamos en el terminal del sistema operativo:
createdb "mibasededatos"
psql "mibasededatos" < mibasededatos.sql
or
createdb "mibasededatos"
pg_restore -c -d "mibasededatos" mibasededatos.sql
| Comando | Descripción |
|---|---|
| \l | Muestra todas las bases de datos |
| \c mibasededatos | Conecta a base de datos mibasededatos |
| \d | Muestra todas las tablas |
| \d nombretabla | Describe la tabla nombretabla |
| \du | Muestra todos los usuarios y roles |
| SELECT version(); | Muestra la versión en uso de Postgres |
| \q | Salir de Postgres |
pg_dump mibasededatos > mibasededatos.sql
passpasspg_ctl -D <directorio_de_trabajo> -l logfile start
Debemos obtener el código oficial de Pgadmin4 desde el repositorio oficial:
git clone https://github.com/postgres/pgadmin4.git
Luego creamos el ambiente virtual para instalar las dependencias Python de Pgadmin4.
virtualenv -p python3.8 venv3.8
. venv3.8/bin/activate
pip install --upgrade pip
pip install -U wheel
sudo apt install python3.8-dev
sudo apt install libpq-dev
pip install -r requirements.txt
Debemos crear dos directorios en /var/:
sudo mkdir /var/lib/pgadmin
sudo mkdir /var/log/pgadmin
Debemos dar autorización de escritura (O propiedad) al usuario que ejecuta Pgadmin4, que a modo ilustrativo llamaremos usuario:
sudo chown usuario:usuario /var/lib/pgadmin/
sudo chown usuario:usuario /var/log/pgadmin/
Para ejecutar Pgadmin4 en nuestro ambiente local necesitamos crear el archivo web/config_local.py con un contenido como el que se muestra a continuación:
from config import *
# Debug mode
DEBUG = True
# App mode
SERVER_MODE = True
# Enable the test module
MODULE_BLACKLIST.remove('test')
# Log
CONSOLE_LOG_LEVEL = DEBUG
FILE_LOG_LEVEL = DEBUG
DEFAULT_SERVER = '127.0.0.1'
UPGRADE_CHECK_ENABLED = True
# Use a different config DB for each server mode.
if SERVER_MODE == False:
SQLITE_PATH = os.path.join(
DATA_DIR,
'pgadmin4-desktop.db'
)
else:
SQLITE_PATH = os.path.join(
DATA_DIR,
'pgadmin4-server.db'
)
Para ejecutar Pgadmin4 necesitaremos un conjunto de paquetes de node instalados.
En esta guía estamos utilizando nvm para el control de versiones de node.
Para instalar nvm (Última versión 0.35.3 al momento de escribir este documento) ejecutamos:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
En caso de no tener la última versión de node, podemos instalarla con (En este caso es v12.18.3):
nvm install 12.18.3
Además necesitaremos el manejador de paquetes yarn, que podemos instalar con:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update
sudo apt install --no-install-recommends yarn
Luego de esto, podemos realizar la instalación de los paquetes de node ejecutando en el directorio principal del repositorio:
make install-node
En caso de existir notificaciones de vulnerabilidades, tales como:
found 1 low severity vulnerability
run `npm audit fix` to fix them, or `npm audit` for details
durante la instalación podemos resolverlas, entrando al directorio web con:
npm i --package-lock-only
npm audit fix
Luego, volviendo al directorio raíz del proyecto, continuamos con:
make bundle
Finalmente, podemos ejecutar Pgadmin4 con:
python web/pgAdmin4.py
Durante la ejecución, Pgadmin4 nos solicitará un username y password que nos servirá para acceder a éste como administrador. Podemos usar, por ejemplo, admin@admin.comy admin4, respectivamente:
Con esto, podremos acceder a Pgadmin4 desde el navegador web de nuestra elección.
En este momento debemos proceder a agregar un servidor, con los siguiente datos:
General --> Name = un_nombre
Connection --> Host Name/Address = localhost
Connection --> Username = usuario_postgres
Connection --> Username = password_postgres
En caso de no tener definida una password para nuestro usuario postgres podemos hacerlo con:
sudo -u usuario_postgres psql
usuario_postgres=# alter user postgres password 'password_postgres';
usuario_postgres=# \q
Ok actualizado