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_idusando 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.