A sequelize-cli será utilizada para gerarmos alguns boilerplates através de comandos do terminal e executar tarefas como criar o banco de dados, rodar migrations, rodar seeders, etc.

// config/sequelizeCli.js

module.exports = {
  development: {
    dialect: 'postgres',
    host: 'localhost',
    port: '5432',
    database: 'onebitflix_development',
    username: 'onebitflix',
    password: 'onebitflix'
  }
}
// .sequelizerc

const path = require('path');

module.exports = {
  'config': path.resolve('config', 'sequelizeCli.js'),
  'models-path': path.resolve('src', 'models'),
  'seeders-path': path.resolve('src', 'database', 'seeders'),
  'migrations-path': path.resolve('src', 'database', 'migrations')
};
sudo -u postgres psql

CREATE USER onebitflix WITH CREATEDB ENCRYPTED PASSWORD 'onebitflix';
npx sequelize-cli db:create
mkdir src/models src/database src/database/migrations 
src/database/seeders
// src/database/index.ts

import { Sequelize } from 'sequelize'

export const database = new Sequelize({
  dialect: 'postgres',
  host: 'localhost',
  port: 5432,
  database: 'onebitflix_development',
  username: 'onebitflix',
  password: 'onebitflix',
	define: {
    underscored: true
  }
})
// src/server.ts

import express from 'express'
import { database } from './database'

const app = express()

const PORT = process.env.port || 3000

app.listen(PORT, () => {
  database.authenticate().then(() => {
    console.log('DB connection successfull.')
  })

  console.log(`Server started successfuly at port ${PORT}.`)
})