Nesse documento, nós vamos ver como fazer o deploy da aplicação Proffy, desenvolvida durante a Next Level Week da Rocketseat, de maneira gratuita, utilizando o Heroku e o Netlify.

Deploy do servidor da aplicação

Nosso primeiro passo vai ser fazer o upload do nosso servidor, é ele que irá conectar com nosso banco de dados e salvar os dados que serão utilizados pelo nosso frontend.

Primeiro passo - Configurando o banco de dados

Se você acompanhou a Next Level Week, você com certeza sabe que nós utilizamos o SQLite, mas aqui não estaremos utilizando ele. Dessa vez, para levar nosso conhecimento um passo a frente, estaremos configurando o PostgreSQL na nossa aplicação.

Preparando a aplicação

Está pronto? Então vamos lá! Para começar, vamos abrir nosso projeto no VSCODE, navegando até a pasta server pelo seu terminal e executando o comando code ..

O nosso primeiro passo, será remover tudo que não iremos utilizar agora relacionados ao SQLite, para isso estaremos excluindo nosso arquivo database.sqlite e removendo a biblioteca sqlite3 com o seguinte comando:

// Utilizando NPM
npm uninstall sqlite3

// Utilizando Yarn
yarn remove sqlite3

Configurando o PostgreSQL

Agora que já estamos preparados para prosseguir configurando, adicionaremos a biblioteca do PostgreSQL, da seguinte forma:

npm install pg

// Ou

yarn add pg

Feito isso, você já deve estar se perguntando "E agora, como irei me conectar com o banco de dados que eu possuia?". Pois então, nós não iremos! Como iremos utilizar um novo banco de dados, iremos começar configurando a conexão com ele, então iremos partir editando nosso arquivo knexfile.ts na raíz do nosso projeto.

Caso você tenha acompanhado a NLW, ele deverá estar da seguinte forma:

import path from 'path'

module.exports = {
  client: 'sqlite3',
  connection: {
    filename: path.resolve(__dirname, 'src', 'database', 'database.sqlite'),
  },
  migrations: {
    directory: path.resolve(__dirname, 'src', 'database', 'migrations')
  },
  useNullAsDefault: true
}

Agora vamos alterar os dados que temos nesse arquivo para começar a parecer com o que teremos em produção. Primeiro vamos alterar a chave client para possuir o valor pg. Além disso removemos completamente a linha 6, e alteramos ela pelo seguinte:

host: 'localhost',
user: 'postgres',
password: 'docker',
database: 'proffy',

Mas CALMA! Não se preocupe, se você ainda não sabe de onde eu tirei esse host, user, password e database, vamos lendo até o final que você logo logo irá entender como irá funcionar!

O resultado final ficará dessa forma: