0
0

More than 1 year has passed since last update.

マイグレーションファイル

Posted at

マイグレーションファイルとは?

以下を実行するためのプログラムファイルのことです。

  • データベーステーブルのカラムの追加・変更・削除
  • indexの追加・変更・削除
  • カラムの名称やデータ型の変更

出典

  • p36 テストやデータベースのテーブル定義を行うmigrationファイルなどが生成されます。
  • p38 データベースの操作を行うmigration(マイグレーション)ファイルが生成される
  • p39 ファイルの中身は内部DSLになっているため、通常のRubyのコードと変わりません。このファイルにテーブルの作成やカラムの追加といった処理を記述しています。

出典

ドメイン固有言語(DSL)とは?

ドメイン固有言語(DSL)はメタプログラミングで使用されます。メタプログラミングとはロジックを直接記述するのではなく、あるパターンを持つロジックを生成する高位ロジックによってプログラミングを行う手法です。簡単に読み解くと「コードを生成するためのコード」のことです。

内部DSLとは?

内部DSLとは汎用プログラミング言語の記述ルールを工夫し、見かけ上の構文を自然言語に近づけたものです。元になる汎用プログラミング言語が存在しており、その性質や構文を借りながら、複雑な機能を制限・省略するなどして定義されております。別名「組み込み DSL」とも呼ばれております。

出典

モデルを作成

モデルのジェネレータとscaffoldジェネレータは、新しいモデルを追加するマイグレーションを生成します。このマイグレーションには、関連するテーブルを作成する命令が既に含まれています。必要なカラムを指定すると、それらのカラムを追加する命令も同時に生成されます。たとえば、以下を実行するとします。

$ bin/rails generate model Product name:string description:text

実際やってみた。

***************** % bin/rails generate model Product name:string description:text                         
      invoke  active_record
      create    db/migrate/20221221070417_create_products.rb
      create    app/models/product.rb

モデルとマイグレーションファイルが生成されていた。

感想

まだRailsのマイグレーションについて勉強する。

前の記事(あまり関連性がない)

出典

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