🦫

【初見】ar_internal_metadata / schema_migrations

に公開

rails でテーブル一覧を取得した際に、???自分作ったっけ??というテーブルが出てきたので、
調べました。

(本当に内容はかすかすです。)

> ActiveRecord::Base.connection.tables
=> ["schema_migrations",
 "ar_internal_metadata",
 "users",
 .....

ar_internal_metadata

Rails環境に関するメタ情報を保持する

[3] pry(main)> result = ActiveRecord::Base.connection.select_all("SELECT * FROM ar_internal_metadata")
[3] pry(main)> puts result.to_a
   (4.9ms)  SELECT * FROM ar_internal_metadata
{"key"=>"environment", "value"=>"development", "created_at"=>2025-07-07 01:37:33.197891 UTC, "updated_at"=>2025-07-07 01:37:33.197893 UTC}

DBを間違えて削除してしまうことを防止するためのもの。

schema_migrations

どのマイグレーションが実行されたかをトラッキングするためのテーブル。ひたすらマイグレーションのバージョン情報が入っている。。

[7] pry(main)> result = ActiveRecord::Base.connection.select_all("SELECT * FROM schema_migrations")
[7] pry(main)> puts result.to_a
   (0.7ms)  SELECT * FROM schema_migrations
{"version"=>"20241015015038"}
{"version"=>"20241022015009"}
{"version"=>"20241107020423"}
{"version"=>"20241112070718"}
.....

まとめ

  • へ〜そうなんだ〜〜

参照

Discussion