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.