method
generate_index_name
v7.1.3.2 -
Show latest stable
-
0 notes -
Class: ActiveRecord::ConnectionAdapters::SchemaStatements
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.0
- 6.1.3.1
- 6.1.7.7
- 7.0.0
- 7.1.3.2 (0)
- 7.1.3.4 (0)
- What's this?
generate_index_name(table_name, column)
private
Hide source
# File activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 1558 def generate_index_name(table_name, column) name = "index_#{table_name}_on_#{Array(column) * '_and_'}" return name if name.bytesize <= max_index_name_size # Fallback to short version, add hash to ensure uniqueness hashed_identifier = "_" + OpenSSL::Digest::SHA256.hexdigest(name).first(10) name = "idx_on_#{Array(column) * '_'}" short_limit = max_index_name_size - hashed_identifier.bytesize short_name = name.mb_chars.limit(short_limit).to_s "#{short_name}#{hashed_identifier}" end