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?

More than 5 years have passed since last update.

【Ruby on Rails5】マイグレーションの基本【初学者】

Posted at

Railsのマイグレーションの基本についておさらいしたので短いですが投稿してみました。
間違っている点などありましたらご指摘頂けますと幸いです。

マイグレーションの適用

マイグレーションとは、データベーススキーマ(階層構造を持たないOSのディレクトリみたいなもの)の継続的な変更を簡単に行うための仕組みです。

ひとつのマイグレーションファイルがデータベースのひとつのversionと捉えることができ、このデータベースのversionとdb/schema.rbとの構造を一致させる役割を持つのがActive Recordです。

例えば、以下のようなテーブル構造を持つデータベースtasksがあるとします。

schema.rb
create_table "tasks", force: :cascade do |f|
    t.string "name"
    t.text "description"
end

SQLでテーブルを作成する場合のクエリ

CREATE TABLE tasks(
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(30),
    description VARCHAR(100),
    PRIMARY KEY (id)
):

これに対して以下のようにdb/schema.rbを更新します。

schema.rb
create_table "tasks", force: :cascade do |f|
    t.string "name"
    t.text "description"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
end

schemaにcreated_atupdated_atというカラムが追加され、これを実際のデータベースに適用させたいというとき
DSLを使わずに生のSQLを使用していた場合、ALTER TABLE 構文などを使用してカラムを追加しなければなりません。
しかし、RubyのDSLであるActive Recordの機能を使用すれば次のコマンドを実行するだけでデータベースのテーブル構造が変更されます。

$ rails db:migrate

これがマイグレーションの適用です。

まとめ

Active Recordにおけるマイグレーションは、データベース内のカラムやインデックス等に修正を加えるための便利な仕組みであり、データベースのバージョン管理機能でもある??、ということです。

最後までご覧いただきありがとうございました。

参考

Rails ガイド Active Record マイグレーション

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?