マイグレーションファイルとは?
以下を実行するためのプログラムファイルのことです。
データベーステーブルのカラムの追加・変更・削除
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のマイグレーションについて勉強する。
前の記事(あまり関連性がない)
出典