Skip to content
Snippets Groups Projects
Select Git revision
  • ag-test
  • rs-test
  • master default protected
  • test-me-pa
  • mksionek-master-patch-52381
  • new-branch-10
  • test-conflicts
  • test-suggestions
  • alejandro-test
  • patch-25
  • winh-test-image-doscussion
  • stg-lfs-image-test-2
  • stg-lfs-image-test
  • test42016
  • issue_42016
  • issue-32709
  • add-codeowners
  • ClemMakesApps-master-patch-62759
  • bvl-staging-test
  • bvl-merge-base-api
  • v9.2.0-rc6 protected
  • v9.2.0-rc5 protected
  • v9.2.0-rc4 protected
  • v9.2.0-rc3 protected
  • v9.1.4 protected
  • v9.2.0-rc2 protected
  • v9.2.0-rc1 protected
  • v9.1.3 protected
  • v8.17.6 protected
  • v9.0.7 protected
  • v9.1.2 protected
  • v9.1.1 protected
  • v9.2.0.pre protected
  • v9.1.0 protected
  • v9.1.0-rc7 protected
  • v9.1.0-rc6 protected
  • v9.0.6 protected
  • v9.1.0-rc5 protected
  • v9.1.0-rc4 protected
  • v9.1.0-rc3 protected
40 results

migration_helpers_spec.rb

  • Yorick Peterse's avatar
    79696f5b
    Hash concurrent foreign key names similar to Rails · 79696f5b
    Yorick Peterse authored
    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.
    Verified
    79696f5b
    History
    Hash concurrent foreign key names similar to Rails
    Yorick Peterse authored
    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.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.