This was initially not implemented simply because I forgot about the
size limit of constraint names in PostgreSQL (63 bytes). Using the old
technique we can't add foreign keys for certain tables. For example,
adding a foreign key on
protected_branch_merge_access_levels.protected_branch_id would lead to
the following key name:
fk_protected_branch_merge_access_levels_protected_branches_protected_branch_id
This key is 78 bytes long, thus violating the PostgreSQL size
requirements.
The hashing strategy is copied from Rails' foreign_key_name() method,
which unfortunately is private and subject to change without notice.
|
||
|---|---|---|
| .. | ||
| api/helpers | ||
| banzai | ||
| bitbucket | ||
| ci | ||
| constraints | ||
| container_registry | ||
| gitlab | ||
| json_web_token | ||
| mattermost | ||
| additional_email_headers_interceptor_spec.rb | ||
| disable_email_interceptor_spec.rb | ||
| event_filter_spec.rb | ||
| expand_variables_spec.rb | ||
| extracts_path_spec.rb | ||
| file_size_validator_spec.rb | ||
| git_ref_validator_spec.rb | ||
| gitlab_spec.rb | ||
| light_url_builder_spec.rb | ||
| repository_cache_spec.rb | ||