instance method
table_exists?
Ruby on Rails 4.2.9
Since v4.2.9 Last seen in v4.2.9Signature
table_exists?(name)
Returns true if table exists. If the schema is not specified as part of name then it will only find tables within the current schema search path (regardless of permissions to access tables in other schemas)
Parameters
-
namereq
Source
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb, line 111
def table_exists?(name)
name = Utils.extract_schema_qualified_name(name.to_s)
return false unless name.identifier
exec_query(<<-SQL, 'SCHEMA').rows.first[0].to_i > 0
SELECT COUNT(*)
FROM pg_class c
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','v','m') -- (r)elation/table, (v)iew, (m)aterialized view
AND c.relname = '#{name.identifier}'
AND n.nspname = #{name.schema ? "'#{name.schema}'" : 'ANY (current_schemas(false))'}
SQL
end
Defined in activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb line 111
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements