Como fazer seu aplicativo Rails começar a conversar com um banco de dados Postgres?

Introdução

Ruby on Rails usa sqlite3 como banco de dados padrão, que funciona muito bem em muitos casos, mas pode não ser suficiente para sua aplicação. Se o seu aplicativo requer escalabilidade, centralização e controle (ou qualquer outro recurso) fornecido por um banco de dados SQL cliente / servidor, como PostgreSQL ou MySQL, você precisará realizar algumas etapas adicionais para colocá-lo em funcionamento. Rails é agnóstico de banco de dados, o que significa que pode ser usado com uma variedade de bancos de dados diferentes. Por padrão, ele assume que o MySQL está sendo usado, mas é muito fácil de usar com o Postgres. Este guia o guiará pela criação de um aplicativo Rails que usa um banco de dados Postgres. Você pode seguir o guia em sua máquina local ou em um VPS.

Instalando Rails usando RVM

A maneira mais fácil de instalar Rails é usando RVM, que também instala Ruby. Para instalar o RVM, você precisará garantir que o seu sistema tenha o curl instalado (como você faz isso depende do seu sistema operacional). Se você já tiver o RVM instalado, pule para a próxima seção .

RVM pode instalar Ruby e Rails automaticamente como parte de sua instalação. Para fazer isso, execute este comando:

Nota: você deve revisar o script de instalação RVM antes de executá-lo (ou qualquer outro script remoto que você canalize para o bash.

O RVM irá se instalar no seu sistema. Agora você pode usá-lo para gerenciar suas versões Ruby. Isso é útil porque você pode exigir diferentes versões do Ruby para diferentes projetos. O RVM também instalou a gem Rails para nós.
Instalando Rails usando RubyGems

Se você já tem o RVM instalado, não é necessário reinstalá-lo. Em vez disso, você pode simplesmente instalar o Rails instalando o gem:

trilhos de instalação gem

Isso irá instalar o Rails e quaisquer outras joias que ele requer.
Instalando Postgres

O método de instalação do Postgres depende do seu sistema operacional. Veja postgresql.org/download para uma lista completa. Geralmente é mais fácil usar um gerenciador de pacotes como apt-get no Ubuntu ou Homebrew no OS X.

Se estiver instalando o Postgres em uma máquina local, você também pode querer instalar uma GUI (embora este guia presuma o uso de linha de comando). O pgAdmin não é a ferramenta mais bonita do mundo, mas faz o trabalho.

Finalmente, você desejará instalar o pg gem para que possa interagir com o código Postgres do Ruby. Para fazer isso:

gem instalar pg

Configurando Postgres

Crie um usuário Postgres para o aplicativo Rails que criaremos na próxima etapa. Para fazer isso, mude para o usuário Postgres:

su – postgres

Em seguida, crie um usuário (ou uma “função”, como o Postgres o chama):

criar função myapp com senha de login do createdb ‘password1’;

Criando Seu Aplicativo Rails

Para criar um aplicativo Rails configurado para Postgres, execute este comando:

rails new myapp –database = postgresql

Isso cria um diretório chamado “myapp”, que hospeda um aplicativo chamado “myapp” (você pode nomeá-lo como quiser ao executar o comando). O Rails espera que o nome do usuário do banco de dados corresponda ao nome da aplicação, mas você pode facilmente mudar isso se necessário.

Agora iremos configurar com qual banco de dados o Rails irá falar. Isso é feito usando o arquivo database.yml, localizado em:

RAILS_ROOT / config / database.yml

Nota: RAILS_ROOT é o diretório raiz do Rails. No exemplo acima, seria em / myapp (em relação à sua localização atual).

O arquivo database.yml é usado pelo Rails para se conectar ao banco de dados apropriado para o ambiente Rails atual. Ele usa YAML, um padrão de serialização de dados. Existem alguns bancos de dados listados aqui para diferentes ambientes; desenvolvimento, teste e produção. Por padrão, o Rails espera um banco de dados diferente para cada ambiente. Isso é útil porque, por exemplo, o banco de dados de teste é esvaziado e reconstruído toda vez que você executa os testes Rails. Para cada banco de dados, certifique-se de que o nome de usuário e a senha correspondam ao nome de usuário e senha que você forneceu ao usuário do Postgres.

Uma vez configurado, seu database.yml deve conter algo assim:

desenvolvimento:
adaptador:
codificação postgresql :
banco de dados unicode : myapp_development
pool: 5
nome de usuário: myapp
senha: password1

teste:
adaptador:
codificação postgresql :
banco de dados unicode : myapp_test
pool: 5
nome de usuário: myapp
senha: password1

Você pode então executar:

rake db: setup

Isso criará bancos de dados de desenvolvimento e teste, definirá seus proprietários para o usuário especificado e criará tabelas “schema_migrations” em cada um. Esta tabela é usada para registrar suas migrações para esquemas e dados.
Rails em execução

Você deve ser capaz de iniciar seu aplicativo Rails agora:

servidor de trilhos

Se você navegar para localhost: 3000, deverá ver uma landing page do Rails. Isso realmente não faz muito embora. Para interagir com nosso banco de dados, vamos criar um scaffold:

rails g scaffold Título da postagem: string body: text
rake db: migrate

Agora navegue até localhost: 3000 / posts. A partir daqui, você pode criar novas postagens, editar postagens existentes e excluir postagens.

Seu aplicativo Rails agora está se comunicando com um banco de dados Postgres!