Si vas utilizar una base de datos relacional Postgresql en una buena opción y en esta ocasión vamos a instalarlo utilizando Homebrew.
Como breviario cultural homebrew es el manejador de paquetes para OSX.
Instalamos Postgresql
- Como primer paso hay que actualizar brew
$ brew update
$ brew doctor
- Intalamos Postgresql
$ brew install postgresql
Listo ya tenemos instalado PostgreSql, y lo verificamos de la siguiente forma.
$ postgres --version
postgres (PostgreSQL) 10.1
- Lanzamos el servicio
$ brew services start postgresql
Trabajando con PSQL
PSQL es una terminal interactiva, a partir de aquí vamos hacer algunas operaciones básicas
- Creamos una base de datos
$ psql postgres
psql (10.1)
Type "help" for help.
postgres=# CREATE ROLE userdemo WITH LOGIN PASSWORD 'userdemo';
postgres=# CREATE DATABASE mydb;
postgres=# GRANT ALL PRIVILLEGES ON DATABASE mydb TO userdemo
Si no reconoce el comando puedes utilizar la opción siguiente
$ /usr/local/Cellar/postgresql/10.1/bin/createdb mydb
- Creamos una tabla
$ psql mydb
mydb=# create table tasks(
mydb(# id int,
mydb(# description varchar(50),
mydb(# status int,
mydb(# active boolean);
- Insertamos datos a la tabla creada
mydb=# insert into tasks values (1, 'make a coffe', 2,true);
INSERT 0 1
- Consultamos datos
mydb=# select * from tasks;
id | description | status | active
----+--------------+--------+--------
1 | make a coffe | 2 | t
(1 row)
Logs
Para poder ver los logs
$ tail -f /usr/local/var/log/postgres.log
Comandos básicos
- Mostrar la tablas \dt
mydb=# \dt
List of relations
Schema | Name | Type | Owner
--------+-------+-------+------------------
public | tasks | table | saidmoraleslemus
(1 row)
- Mostrar la estructura de una tabla \d tasks
mydb=# \d tasks
Table "public.tasks"
Column | Type | Collation | Nullable | Default
-------------+-----------------------+-----------+----------+---------
id | integer | | |
description | character varying(50) | | |
status | integer | | |
active | boolean | | |
Modifcar la configuración
Por default todas las entradas son confiables es decir si entramos a la base de datos no nos pide la contraseña
Si queremos que siempre nos pida la contrasela tenemos que modificar el archivo pg_hba.conf y se debe cambiar el metodo trust por password
$ cat /usr/local/var/postgres/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
Quedando de la siguiente forma
$ cat /usr/local/var/postgres/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all password
# IPv4 local connections:
host all all 127.0.0.1/32 password
# IPv6 local connections:
host all all ::1/128 password
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all password
host replication all 127.0.0.1/32 password
host replication all ::1/128 password
Reiniciamos el server
$ brew services restart postgres
Y listo cuando tratamos de entrar nos pide la contraseña
Password for user userdemo:
mydb=>