gitlab-org--gitlab-foss/spec/lib/gitlab/database
Yorick Peterse 79696f5b7a
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.
2017-02-21 15:07:02 +01:00
..
migration_helpers_spec.rb Hash concurrent foreign key names similar to Rails 2017-02-21 15:07:02 +01:00