• E
    Add ability to change the names of the default handlers · 8d32346c
    Eileen Uchitelle 提交于
    When I wrote the `connected_to` and `connects_to` API's I wrote them
    with the idea in mind that it didn't really matter what the
    handlers/roles were called as long as those connecting to the roles knew
    which one wrote and which one read.
    
    With the introduction of the middleware Rails begins to assume it's
    `writing` and `reading` and there's no room for other roles. At GitHub
    we've been using this method for a long time so we have a ton of legacy
    code that uses different handler names `default` and `readonly`. We
    could rename all our code but I think this is better for a few reasons:
    
    - Legacy apps that have been using multiple databases for a long time
      can have an eaiser time switching.
    - If we later find this to cause more issues than it's worth we can
      easily deprecate.
    - We won't force old apps to rewrite the resolver middleware just to use
      a different handler.
    
    Adding the writing_role/reading_role required that I move the code that
    creates the first handler for writing to the railtie. If I didn't move
    this the core class would assign the handler before I was able to assign
    a new one in my configuration and I'd end up with 3 handlers instead of
    2.
    8d32346c
resolver.rb 2.7 KB