- ✏️ Nombre: Emmanuel Norambuena
- ✏️ Correo: eanorambuena@uc.cl
Implimenté todas las funcionalidades requeridas en la tarea.
Primero se instala Postgresql y luego se ejecutan los siguientes comandos:
cd frontend
yarn
cd ../backend
yarn
Luego, se procede a la configuración de Postgresql, el archivo .env
y Sequelize como se indica en los siguientes apartados en el directorio backend/
Si ya está instalado todo, solo se deben iniciar los servidores. Lo más sencillo es abrir dos terminales y ejecutar en una el backend y en la otra el frontend.
Para ejecutar el backend, se deben seguir los siguientes pasos:
cd backend
sudo service postgresql start
yarn dev
Para ejecutar el frontend, se deben seguir los siguientes pasos:
cd frontend
yarn dev
Antes de todo, cada vez que se abre la consola por primera vez para trabajar con Postgresql, se debe iniciar el servidor:
sudo service postgresql start
- Cómo inicializar psql
sudo -u postgres psql
- Cómo crear el usuario de postgres
sudo -u postgres createuser --superuser username
- Cómo crear la base de datos
sudo -u postgres createdb db
- Cómo crear la clave del usuario
sudo -u postgres psql
Luego, en la consola de psql, se escribe:
ALTER USER username WITH PASSWORD 'password';
\q
- Cómo conectarse a la base de datos
psql -U username -d db -h 127.0.0.1
# Ingresar la contraseña (password)
Una vez creada la base de datos e inicializado psql, se debe crear un archivo .env
en la raíz del directorio backend/
, e ingresar los siguientes campos
- Indica el usuario de la base de datos
DB_USERNAME = username
- Indica la contraseña del usuario de la base de datos
DB_PASSWORD = password
- Indica el nombre de la base de datos
DB_NAME = db
- Indica el host de la base de datos
DB_HOST = 127.0.0.1
- Indica el puerto en el que correrá la aplicación
PORT = 3000
Primero debe inicializarse Sequelize en el directorio backend/
con el siguiente comando, que creará la base de datos de desarrollo db_development
:
yarn sequelize-cli db:create --config=src/config/config.js
Este comando fue empleado para crear el modelo User
, no se requiere ejecutarlo nuevamente.
yarn sequelize-cli model:generate --name User --attributes username:string
Luego, se modificó el archivo de migración para eliminar la primaryKey id
y agregar username
como primaryKey. También se modificó el archivo de modelo para agregar username
como primaryKey.
Este comando fue empleado para crear el modelo Entry
, no se requiere ejecutarlo nuevamente.
yarn sequelize-cli model:generate --name Entry --attributes id:integer,title:string,body:string,date:date,belongsTo:string
Luego, modificó el archivo de migración para agregar belongsTo
como una foreignKey. También se modificó el archivo de modelo para agregar belongsTo
como una foreignKey usando el método:
static associate(models) {
Entry.belongsTo(models.User, {
foreignKey: 'belongs_to',
targetKey: 'username'
});
}
Para ejecutar las migraciones, se debe ejecutar el siguiente comando:
yarn sequelize-cli db:migrate --config=src/config/config.js
Para crear los seeds, se debe ejecutó los siguientes comandos. No es necesario ejecutarlos nuevamente.
yarn sequelize-cli seed:generate --name first-users
yarn sequelize-cli seed:generate --name first-entries
Luego, se modificó el archivo de seed para agregar los datos de los usuarios y las entradas.
Para ejecutar los seeds, se debe ejecutar el siguiente comando:
yarn sequelize-cli db:seed:all --config=src/config/config.js
Usé Github Copilot para autocompletar el código y documentación.