Comandos Rails para banco de dados

Dicas - 18/Ago/2019 - por Henrique Morato

Se você lida com Active Record, já deve ter executado alguns comandos relacionados a criar, modificar e até deletar banco de dados, mas conhecer outros comandos pode dar agilidade e ajudar a resolver diversos problemas durante o desenvolvimento de uma aplicação.

Vamos ver uma lista de comandos rake de banco do Rails.

Começando com os básicos:

db:create - Cria o banco de dados para o ambiente corrente (development, test ou production).

db:drop - Exclui o banco de dados para o ambiente corrente (development, test ou production).

db:migrate - Roda as migrations para o ambiente corrente.

db:rollback - Desfaz o último arquivo de migration.

db:seed - Facilita a criação de elementos no banco de dados, executando o arquivo seed.rb. Desta forma, podemos incluir diversos objetos no banco de dados.

db:schema:load - Faz o carregamento do arquivo schema.rb no banco de dados. Trata-se de uma opção mais rápida que executar cada migration, já que arquivo schema.rb representa o banco corrente.

db:reset - Roda o comando db:drop e db:setup em sequência.

db:setup - Executa os comandos rails db:create db:schema:load db:seed durante o comando bin/setup.

db:migrate:status - Mostra uma tabela de quais migrations foram executadas no banco (up) e quais não foram (down).


Outros comandos interessantes:

db:create:all - Cria o banco de dados para todos os ambientes.

db:drop:all - Exclui o banco de dados em todos os ambientes.

db:version - migration_id da última migração executada.

db:migrate:up VERSION=migration_id - Roda uma migration específica.

db:migrate:down VERSION=migration_id - Faz rollback de uma migration específica.

db:migrate:redo VERSION=migration_id - Desfaz e refaz uma migration específica.

Você pode conseguir o migration_id usando o db:migrate:status, o arquivo de migration ou o db:version.

db:rollback STEP=2 - Desfaz os dois últimos arquivos de migration.

db:forward - Executa a próxima migration.

db:test:prepare - Refaz o banco de dados no ambiente de testes usando o schema.rb.

db:schema:dump - Cria o arquivo schema.rb a partir do banco de dados. Pode ser útil para bancos previamente existentes.

db:structure:dump - Exporta o banco de dados com todas tabelas e linhas criadas num arquivo db/scructure.sql.

db:structure:load - Carrega um arquivo exportado no banco de dados.

db:fixtures:load - Carrega todas as fixtures no ambiente corrente.

db:environment:set - Define o ambiente para o banco de dados.

db:schema:cache:dump - Cria um arquivo db/schema_cache.yml com o schema corrente.

db:schema:cache:clear - Limpa o arquivo schema_cache.yml.

db:prepare - Roda db:setup se o banco de dados não existir ou roda db:migrate se ele existir.

db:migrate:reset - Roda os comandos db:drop, db:create e db:migrate.


Alguns desses comandos são mais comuns no dia a dia como: db:create, db:migrate, db:seed e db:setup, mas é interessante conhecer outros que também são bastante habituais, como db:migrate:reset.

É claro que existem muitos outros comandos que podemos chamar. Você pode conferir cada um deles no código do Rails.

Foto de perfil do autor
Henrique Morato

Dev