As far as the Postgres limit, that also applies to index names. So I don't
see why we need to handle it any different for foreign keys (i.e., with
indexes it just means that it fails on creation if the auto-generated one
is too long and the dev has to provide a manual name.)

On Tue, Jan 13, 2015 at 4:15 PM, Amiel Martin <am...@carnesmedia.com> wrote:

> My vote would be to be consistent with the way index names work; the long
> human readable version.
>
> -Amiel
>
> On Tue, Jan 13, 2015 at 12:31 PM, Ken Collins <k...@actionmoniker.com>
> wrote:
>
>> Though I have not felt the pain, I have been a long time user of
>> structure files in legacy environments and think consistent names are a
>> good idea. On the flip side, the same could be said for constraint name
>> “churn” too. I have seen this in big Oracle teams and unavoidable to my
>> knowledge and/or only fixed with a custom script after the rake migration
>> task.
>>
>> All that said, I think this is something Rails could solve and the PG
>> limit does seem like a big constraint too.
>>
>>  - Cheers,
>>    Ken
>>
>> On January 13, 2015 at 11:12:47 AM, ch...@sinjakli.co.uk (
>> ch...@sinjakli.co.uk) wrote:
>>
>> I'm really glad to see foreign key support has made its way into Rails
>> migrations, but very quickly ran into an issue with it when working in
>> teams using structure.sql.
>>
>> Previously, we'd been using the foreigner gem, which generated FK names
>> based on the table and column. This meant the name was consistent every
>> time you ran the migration. With the version that made it into 4.2, part
>> of the FK name is random
>> <https://github.com/senny/rails/commit/8768305f20d12c40241396092a63e0d56269fefe#diff-a0775e1ec64264dc76a8ee71a5211ae3R697>.
>> This means every dev who runs the migration locally generates a different
>> version of structure.sql, leading to conflicts in version control.
>>
>> Right now we're working round this by explicitly setting the FK name in
>> our migrations. I'd like to find a way of fixing this in Rails itself
>> though.
>>
>> My understanding was the reason for switching away from the old format
>> was that the name is arbitrary, and can fall out of date on column renames.
>> By itself I'm not totally convinced that's enough reason to get rid of the
>> more descriptive names (though I agree it's debatable). The restriction on
>> the length of the name (63 characters in Postgres, for example) is a more
>> compelling reason for me.
>>
>> Either way, I'd like to contribute a patch to make migrations generate
>> consistent FK names. I'm happy to implement either of the following (or
>> something else if anyone's got a better ideas):
>>
>> * Switch back to generating human-readable names, accept that people with
>> long table/column names will occasionally have to set them manually
>> * Generate that human-readable name, hash it, and append a substring of
>> the hash to "fk_rails_". This would give you a name which is both short and
>> consistent.
>>
>> Would really appreciate feedback on those approaches.
>>
>> Cheers,
>> Chris
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Ruby on Rails: Core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to rubyonrails-core+unsubscr...@googlegroups.com.
>> To post to this group, send email to rubyonrails-core@googlegroups.com.
>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Ruby on Rails: Core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to rubyonrails-core+unsubscr...@googlegroups.com.
>> To post to this group, send email to rubyonrails-core@googlegroups.com.
>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to rubyonrails-core+unsubscr...@googlegroups.com.
> To post to this group, send email to rubyonrails-core@googlegroups.com.
> Visit this group at http://groups.google.com/group/rubyonrails-core.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-core+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-core@googlegroups.com.
Visit this group at http://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to