1. ホーム
  2. ruby-on-rails

[解決済み] Railsでテーブルが存在するかどうかをチェックする

2022-04-14 22:36:08

質問

テーブルが存在しないと動作しないrakeタスクがあります。私は20人以上のエンジニアと一緒にウェブサイトで働いているので、彼らがテーブルを移行したことを確認してから、それぞれのテーブルを入力するrakeタスクを実行したいのですが、どうすればよいでしょうか?

ARには、以下のようなメソッドはありますか? Table.exists ? テーブルが正常に移行されたことを確認するにはどうすればよいですか?

解決方法は?

Rails 5では API はテーブル/ビューに関して明示的になりました。 は、総称して データソース .

# Tables and views
ActiveRecord::Base.connection.data_sources
ActiveRecord::Base.connection.data_source_exists? 'kittens'

# Tables
ActiveRecord::Base.connection.tables
ActiveRecord::Base.connection.table_exists? 'kittens'

# Views
ActiveRecord::Base.connection.views
ActiveRecord::Base.connection.view_exists? 'kittens'

Rails 2, 3 & 4では、APIは以下の通りです。 テーブル .

# Listing of all tables and views
ActiveRecord::Base.connection.tables

# Checks for existence of kittens table/view (Kitten model)
ActiveRecord::Base.connection.table_exists? 'kittens'

マイグレーションの状態を取得する。

# Tells you all migrations run
ActiveRecord::Migrator.get_all_versions

# Tells you the current schema version
ActiveRecord::Migrator.current_version

マイグレーションやメタデータのためにさらにAPIが必要な場合は、こちらをご覧ください。