Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
110
Help us understand the problem. What is going on with this article?
@pugiemonn

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

More than 3 years have passed since last update.

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の時間と表示されています。

110
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
pugiemonn
GoogleTagManagerを利用してGAを操るようなマーケターとしてお仕事しています
pugiemonn_com
pugiemonn.com

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
110
Help us understand the problem. What is going on with this article?