LoginSignup
117

More than 5 years have passed since last update.

rake or rails コマンドでdbを扱うときのメモ

Last updated at Posted at 2016-04-20

rakeコマンドはたまにしか使わなくていつも忘れてしまいます。

rakeとは

便利タスクを呼び出せるツールのことです。この記事ではRailsで利用することを想定しています。Rails5からはrakeだけでなくrailsコマンドからも実行できるようになっています。

migrationを実行

migrationを実行
rake db:migrate

rake db:create データベースを作成

データベースが無いときはまずcreateで作成します。

データベースを作成
rake db:create

rake db:drop データベースを削除

データベースを消すときに使います。

データベースを削除
rake db:drop

migrate、drop、createを一気に実行

rake db:reset

dbをロールバック

1つ戻ります。

rake db:rollback

ただし、rollbackする前にmigrationファイルを編集するとエラーがでます。

複数 rollbackしたい

複数一気にrollbackしたい場合は、STEPを使います。

rake db:rollback STEP=2

dbのバージョンを表示

rake db:version
 bundle exec rake db:version
  ActiveRecord::SchemaMigration Load (1.9ms)  SELECT `schema_migrations`.* FROM `schema_migrations`
Current version: 20160221025548

Currentのバージョンが表示されました。
ここで1つrollbackしてからバージョンを表示します。

bundle exec rake db:rollback
bundle exec rake db:version
  ActiveRecord::SchemaMigration Load (0.2ms)  SELECT `schema_migrations`.* FROM `schema_migrations`
Current version: 20150812225828

Current versionが変わっているのがわかります。

db:migrate:statusで履歴を表示

いままでにmigrationをした履歴が表示されます。

rake db:migrate:status
履歴表示例
bundle exec rails db:migrate:status

database: pugiemonn_development

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20160122000858  Devise create users
   up     20160122001228  Add columns to users
   up     20160205000644  Add name to users
   up     20160205000650  Create identities

OS時間の確認

time:zones:local を使用するとローカルの時間を確認できます。

rake time:zones:local

* UTC +09:00 *
Osaka
Sapporo
Seoul
Tokyo
Yakutsk

Tokyoの時間と表示されています。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
117