Skip to content
Snippets Groups Projects
Verified Commit 79696f5b authored by Yorick Peterse's avatar Yorick Peterse
Browse files

Hash concurrent foreign key names similar to Rails

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.
parent 459a97d4
No related branches found
No related tags found
1 merge request!9415Hash concurrent foreign key names similar to Rails
Pipeline #