0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

例え話で学ぶ rake dbの覚書 w/chatGPT

Last updated at Posted at 2024-08-30

rakeとは

rakeとはRubyにおいて色々やってくれるツールのことです。その中でもsinatraやRails上でデータベースに対して何か操作を行いたいときに行うコマンドがrake db: hogehogeです。

本記事ではわかるようでわからないrake dbコマンドをみんな大好きchatGPTくんが家の建築に例えてくれたのでわかりやすい(?)例え話を聞きながら理解していきます。

完全に蛇足ですが例え話をchatGPTにイラストまで生成させたので楽しんでいってください。

rake db:create

プロジェクトフォルダ内のdatabase.ymlファイルに基づいてデータベースを作成します。

開発の途中で作っていくテーブルを保存する場所です。新しくプロジェクトを作成したらまずこのコマンドを実行してデータベースを作ります。

身近なものに例えると、、、

まず、家を建てるためには土地が必要です。rake db:create は、その「土地を購入する」ことに相当します。これは、データベースを作成して、家を建てるための場所(データベース)が準備されるプロセスです。

image.png

rake db:create_migration NAME=hogehoge

db/migrateフォルダ内にマイグレーションファイルが作成されます。

マグレーションファイルとはテーブルの設計図のようなものでマイグレーションファイルに書かれた情報を元にテーブルを作成、修正します。マイグレーションファイルをどのように記述するかは後述します。(追記する)

身近なものに例えると、、、

次に、どんな家を建てるのか、設計図を描きます。rake db:create_migration NAME=hogehoge は、この「設計図を描く」ステップです。この設計図には、どのような部屋が必要で、どこに配置するのかが記載されています。マイグレーションファイルが設計図に相当し、家の構造(データベースの構造)がここで決まります。

image1.png

rake db:migrate

作成されたmigrationファイルを実行し、データベースを更新するコマンドです。

身近なものに例えると、、、

設計図ができたら、実際に工事を始めます。rake db:migrate は、この「家を建てる」プロセスです。設計図に基づいて、家の骨組みを立て、壁を作り、屋根を乗せるように、データベースの構造が現実のものになります。

image2.png

その他

rake db:migration:status

作成されたマイグレーションファイルのどれがデータベースに適用されていて、どれが適用されていないかを確認するためのコマンドです。

身近なものに例えると、、、

工事が進む中で、進捗を確認するのも大切です。rake db:migration:status は、この「工事進捗を確認する」作業です。どの部分が完成していて、どの部分がまだ未完成かをチェックリストで確認するように、どのマイグレーションが適用済みか、どれが未適用かを確認します。

image3.png

rake db:seed

データベースに初期値をいれるためのコマンドです。

このコマンドを打つことでdb/seeds.rb内に書いてある情報がデータベースに適用されます。

身近なものに例えると、、、

家が完成したら、次は家具やインテリアを配置して住む準備をします。rake db:seed は、この「家具やインテリアを配置する」作業です。データベースに初期データを投入することで、アプリケーションがすぐに使用できる状態に整えます。

image4.png

rake db:reset

データベースをリセットするためのコマンドです。

具体的には一度データベースを削除し、全てのマイグレーションファイルを作成します。

つまり、次のコマンドを順番に打っているのと同じです。

rake db:drop
rake db:create
rake db:migrate

身近なものに例えると、、、

時には、家の状態をリセットして最初からやり直したいことがあります。rake db:reset は、この「家をリノベーションして最初からやり直す」プロセスです。一度家を壊して新たに建て直し、再び全ての部屋や家具を設置し直します。データベースをリセットして、再度マイグレーションを適用し、初期データを投入するのと同じです。

image5.png

rake db:drop

現在使用しているデータベースを削除するためのコマンドです。このコマンドによってデータベースが完全に削除されます。

身近なものに例えると、、、

最後に、家や土地が不要になった場合は、完全に手放すこともあります。rake db:drop は、この「家と土地を完全に手放す」ことに相当します。これを実行すると、データベースが完全に削除され、すべてのデータが失われます。

image6.png

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?