Entre todos os motores de banco de dados disponíveis, PostgreSQL é um dos mais populares. É um sistema de banco de dados de código aberto bem conhecido por sua confiabilidade, recursos robustos e desempenho. Como o PostgreSQL é uma escolha popular, ele é suportado por quase todos os principais frameworks web. Semelhante aos seus concorrentes MySQL e SQLite, o PostgreSQL também tem seus pontos fortes e fracos.
Ruby on Rails é um framework web popular escrito em Ruby. É um framework agnóstico em relação ao banco de dados, o que significa que pode funcionar com uma grande variedade de bancos de dados. Por padrão, o Rails assume SQL para as funcionalidades do banco de dados. No entanto, ele também suporta a integração com o PostgreSQL.
Este tutorial irá guiá-lo através do processo de configuração do PostgreSQL para a sua aplicação Ruby on Rails.
Ruby on Rails e PostgreSQL
Tanto o PostgreSQL quanto o Ruby on Rails estão disponíveis em qualquer distribuição UNIX/Linux. Eles devem estar disponíveis nos servidores de pacotes padrão.
Um método alternativo é usar o RVM (Ruby Version Manager). É uma ferramenta dedicada para gerenciar instalações do Ruby on Rails. O benefício dessa abordagem é que o RVM criará uma instalação local do Ruby on Rails. Ele também pode gerenciar várias versões do Ruby e alternar facilmente entre elas. Aqui está um tutorial que detalha as etapas de Instalação do Ruby on Rails com RVM no Ubuntu.
Quanto ao PostgreSQL, dê uma olhada neste guia rápido sobre instalação e configuração do PostgreSQL no Ubuntu.
-
Instalação do RVM
O processo de instalação do RVM é bastante simples, graças ao script de instalação que o RVM oferece. O script foi projetado para detectar automaticamente o sistema Linux, depois baixar e instalar todos os pacotes necessários. Precisamos das chaves GPG do RVM para verificar os pacotes. Isso garante que os pacotes recebidos não sejam falsificados. Primeiro, adicione as chaves GPG do RVM:
|
1 |
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |

Em seguida, execute o script de instalação do RVM:
|
1 |
curl -sSL https://get.rvm.io | bash -s stable --rails |

Finalmente, verifique a instalação:
|
1 |
type rvm | head -n 1 |
-
Instalação do Rails
Agora podemos usar o RVM para instalar componentes adicionais. Instale o framework Rails usando o RVM:
|
1 |
gem install rails |
-
Instalação do PostgreSQL
O próximo passo requer ter o PostgreSQL pré-instalado no sistema. Por padrão, a maneira mais fácil de instalar o PostgreSQL é usando o gerenciador de pacotes padrão. Ele está disponível para todas as principais distribuições Linux. Confira a página de download do PostgreSQL para todos os métodos de instalação disponíveis. No Ubuntu, os seguintes comandos irão configurar o repositório do PostgreSQL e instalá-lo imediatamente:
|
1 |
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' |

|
1 |
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - |

|
1 |
sudo apt update && sudo apt install postgresql -y |

To enable PostgreSQL support, we need to install the pg gem. Ela permite a interface com o PostgreSQL a partir do código Ruby:
|
1 |
gem install pg |
-
Configuração do PostgreSQL
Após a instalação, configuraremos as ferramentas que precisaremos usar para os nossos projetos. Primeiro, mude para o usuário PostgreSQL:
|
1 |
su - postgres |
Acesse o shell do PostgreSQL:
|
1 |
psql |

No contexto do PostgreSQL, criaremos agora uma nova role (classicamente conhecida como usuário). O PostgreSQL tem seu próprio formato de roles e permissões. Não se esqueça de usar um nome de usuário apropriado e uma senha forte:
|
1 |
create role <username> with createdb login password 'password123'; |
Creating a Rails App
Diga ao Rails para criar um novo aplicativo Rails configurado para usar o PostgreSQL como banco de dados:
|
1 |
rails new <app_name> --database=postgresql |

Isso criará um novo diretório com o nome de usuário do aplicativo. O Rails geralmente espera que o nome de usuário do banco de dados e o nome do aplicativo sejam os mesmos. O próximo passo é definir a configuração do banco de dados do Rails. O arquivo de configuração está localizado no seguinte local:
|
1 |
RAILS_ROOT/config/database.yml |
O arquivo database.yml contém os dados que descrevem o banco de dados apropriado para o ambiente Rails atual. Como o nome do arquivo sugere, ele usa YAML. O YAML é um padrão de serialização de dados amigável para humanos para todas as linguagens de programação.
Por padrão, o Rails espera bancos de dados diferentes para ambientes diferentes, por exemplo, development, test, e production. É útil em várias situações, por exemplo, o Rails esvaziará e recriará o banco de dados de test toda vez que um teste do Rails for executado.
Aqui está um exemplo de database.yml que contém os bancos de dados de development e test :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
development: adapter: postgresql encoding: unicode database: dummyapp_development pool: 5 username: dummyapp password: password123 test: adapter: postgresql encoding: unicode database: myapp_test pool: 5 username: dummyapp password: password123 |

Agora é hora de aplicar as alterações. O seguinte comando preparará os bancos de dados necessários descritos em database.yml. Cada banco de dados terá seus próprios usuários e tabelas schema_migrations . A tabela é necessária para a migração de dados e esquema:
|
1 |
rake db:setup |
Esta etapa falhará se o arquivo de configuração do PostgreSQL pg_hba.conf contiver configurações incorretas. O arquivo está localizado no seguinte local:
|
1 |
sudo cat /etc/postgresql/13/main/pg_hba.conf |
A linha a seguir é o alvo. Em vez de peer, o método de autenticação deve ser md5:
|
1 |
local all all peer |
Altere a linha:
|
1 |
local all all md5 |

Para aplicar as alterações, você deve reiniciar o serviço do PostgreSQL:
|
1 |
sudo systemctl restart postgresql |
Em seguida, execute novamente a configuração do banco de dados:
|
1 |
rake db:setup |
Executando o Rails
A execução do servidor Rails requer o seguinte componente adicional. Observe que, para isso, você precisa do Node.js instalado (com yarn):
|
1 |
rails webpacker:install |

O aplicativo Rails agora deve estar pronto para ser lançado. Inicie o servidor Rails:
|
1 |
rails server |

O servidor deve estar acessível a partir da seguinte URL. Ele abrirá a página inicial do Rails:
|
1 |
http://localhost:3000 |
Para tornar a página inicial mais interessante, crie um scaffold:
|
1 |
rails g scaffold Post title:string body:text |

|
1 |
rake db:migrate |
Finalmente, inicie o servidor e navegue até a URL novamente. Agora podemos gerenciar posts (criar, editar e excluir posts).
Considerações Finais
Esta é uma configuração básica do Ruby on Rails com PostgreSQL. Existe um guia oficial de introdução que ajudará você a utilizar melhor o Rails. O aplicativo de exemplo que criamos usa o PostgreSQL. Dessa forma, você pode criar qualquer aplicativo que use o PostgreSQL para suas funcionalidades.
Boa computação!


Comentários
Nenhum comentário ainda. Seja o primeiro.