🦫
【初見】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を間違えて削除してしまうことを防止するためのもの。
- Rails5でDBに自動生成されるテーブル、"ar_internal_metadata" とは何なのか #Ruby - Qiita
- production環境だと、
rails db:dropできないようになっているらしい、、怖くて試せないですね。
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