# ORM
Un ORM es un modelo de programación que permite mapear las estructuras de una base de datos relacional (SQL Server, Oracle, MySQL, etc.), en adelante RDBMS (Relational Database Management System), sobre una estructura lógica de entidades con el objeto de simplificar y acelerar el desarrollo de nuestras aplicaciones.
# Sequelize

Sequelize es un ORM para Nodejs que nos permite manipular varias bases de datos SQL de una manera bastante sencilla, entre estas bases de datos podemos encontrar: mysql, sqlite, postgres, mssql.
# Instalación
sudo npm i -S pg pg-hstore sequelize
sudo npm i -D sequelize-cli
Nota
Use -g para instalar globalmente sequelize-cli
Sequelize-cli nos sirve para ejecutar comandos del ORM en la terminal
# Configuración de Sequelize
# Crear archivo de configuracion
touch .sequelizerc
Nota
Aqui se configuran los path's para las migraciones, modelos, seeders y el config.json
const path = require('path');
module.exports = {
'config': path.resolve('./', 'pg-config.json'),
'migrations-path': path.resolve('./', 'pg-migrations'),
'seeders-path': path.resolve('./', 'pg-seeders'),
'models-path': path.resolve('./', 'pg-models')
}
# Iniciamos sequelize
sequelize init
Nota
Aqui se configura el config.json según nuestro caso
{
"production": {
"username": "postgres",
"password": "postgres",
"database": "CursoHapi",
"host": "127.0.0.1",
"dialect": "postgres",
"port": "5434"
},
"test": {
"username": "postgres",
"password": "postgres",
"database": "CursoHapitest",
"host": "127.0.0.1",
"dialect": "postgres",
"port": "5434"
},
"development": {
"username": "postgres",
"password": "postgres",
"database": "CursoHapidev",
"host": "127.0.0.1",
"dialect": "postgres",
"port": "5434"
}
}
# Creamos la base de datos
sequelize db:create --env production
Nota
Al --env se le pasa como argumento la variable a usar del config.json
# Creamos un modelo
sequelize model:generate --name User --attributes name:string,email:string,password:string
# Ejecutamos las migraciones
sequelize db:migrate --env production
Nota
Al --env se le pasa como argumento la variable a usar del config.json
← Docker