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 odb:migrate:status
, o arquivo de migration ou odb: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.