小编典典

检查Rails中是否存在表

all

我有一个 rake 任务,除非存在表,否则它将无法工作。我在一个网站上与 20 多名工程师一起工作,所以我想确保他们在执行将填充相应表的 rake
任务之前已经迁移了表。

AR 有没有这样的方法Table.exists?如何确保他们已成功迁移表?


阅读 74

收藏
2022-07-14

共1个答案

小编典典

在 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,请参阅:

2022-07-14