1. 13 1月, 2014 1 次提交
    • X
      upgrade SDoc · 6049249c
      Xavier Noria 提交于
      Kudos to @zzak for taking over SDoc and make it work with RDoc 4.
      6049249c
  2. 10 1月, 2014 1 次提交
    • S
      Ensure Active Record connection consistency · 6cc03675
      schneems 提交于
      Currently Active Record can be configured via the environment variable `DATABASE_URL` or by manually injecting a hash of values which is what Rails does, reading in `database.yml` and setting Active Record appropriately. Active Record expects to be able to use `DATABASE_URL` without the use of Rails, and we cannot rip out this functionality without deprecating. This presents a problem though when both config is set, and a `DATABASE_URL` is present. Currently the `DATABASE_URL` should "win" and none of the values in `database.yml` are used. This is somewhat unexpected to me if I were to set values such as `pool` in the `production:` group of `database.yml` they are ignored.
      
      There are many ways that active record initiates a connection today:
      
      - Stand Alone (without rails)
        - `rake db:<tasks>`
        - ActiveRecord.establish_connection
       
      - With Rails
        - `rake db:<tasks>`
        - `rails <server> | <console>`
        - `rails dbconsole`
      
      
      We should make all of these behave exactly the same way. The best way to do this is to put all of this logic in one place so it is guaranteed to be used.
      
      Here is my prosed matrix of how this behavior should work:
      
      ```
      No database.yml
      No DATABASE_URL
      => Error
      ```
      
      ```
      database.yml present
      No DATABASE_URL
      => Use database.yml configuration
      ```
      
      ```
      No database.yml
      DATABASE_URL present
      => use DATABASE_URL configuration
      ```
      
      ```
      database.yml present
      DATABASE_URL present
      => Merged into `url` sub key. If both specify `url` sub key, the `database.yml` `url`
         sub key "wins". If other paramaters `adapter` or `database` are specified in YAML,
         they are discarded as the `url` sub key "wins".
      ```
      
      ### Implementation
      
      Current implementation uses `ActiveRecord::Base.configurations` to resolve and merge all connection information before returning. This is achieved through a utility class: `ActiveRecord::ConnectionHandling::MergeAndResolveDefaultUrlConfig`.
      
      To understand the exact behavior of this class, it is best to review the behavior in activerecord/test/cases/connection_adapters/connection_handler_test.rb though it should match the above proposal.
      6cc03675
  3. 09 1月, 2014 2 次提交
  4. 06 1月, 2014 1 次提交
  5. 05 1月, 2014 1 次提交
    • A
      Add preview_path to autoload_paths in after_initialize · 3713e433
      Andrew White 提交于
      Only config.autoload_paths is frozen, so add the preview_path
      to ActiveSupport::Dependencies.autoload_paths directly in an
      after_initialize block. Also protect against a blank preview_path
      being added to autoload_paths which can cause a serious slowdown
      as Dir[] tries to load all *_preview.rb files under /
      
      Fixes #13372
      3713e433
  6. 03 1月, 2014 1 次提交
  7. 02 1月, 2014 3 次提交
    • J
      Automatically maintain test database schema · ff7ab3bc
      Jon Leighton 提交于
      * Move check from generated helper to test_help.rb, so that all
        applications can benefit
      * Rather than just raising when the test schema has pending migrations,
        try to load in the schema and only raise if there are pending
        migrations afterwards
      * Opt out of the check by setting
        config.active_record.maintain_test_schema = false
      * Deprecate db:test:* tasks. The test helper is now fully responsible
        for maintaining the test schema, so we don't need rake tasks for this.
        This is also a speed improvement since we're no longer reloading the
        test database on every call to "rake test".
      ff7ab3bc
    • R
      Adding missing require · 02d36684
      Rafael Mendonça França 提交于
      02d36684
    • S
      Move default production database to URL sub key · 9749e0ef
      schneems 提交于
      By using the URL sub key in the `database.yml` by default we are exposing the ability to set other attributes such as `pool` or `reap_frequency` without need of modifying the URL to contain non-connection specific information.
      9749e0ef
  8. 26 12月, 2013 4 次提交
    • S
      fix 2.1.0 bug :( · d0926d3d
      schneems 提交于
      d0926d3d
    • S
      ensure environment is run before db:structure:load · 707be603
      schneems 提交于
      Right now `db:drop` depends on `load_config` since so when `db:drop` gets executed `load_config` gets run. `db:structure:load` depends on `[:environment, :load_config]`. So before it runs, it executes `environment` but because `load_config` has already executed it is skipped. Note `db:load_config` is "invoke"-d twice, but only "execute"-d once:
      
      ```
      ** Invoke db:drop (first_time)
      ** Invoke db:load_config (first_time)
      ** Execute db:load_config
      ** Execute db:drop
      ** Invoke db:structure:load (first_time)
      ** Invoke environment (first_time)
      ** Execute environment
      ** Invoke db:load_config
      ** Execute db:structure:load
      ```
      
      The fix for this is making sure that the environment is run before any `load_config`:
      
      ```
      ** Invoke environment (first_time)
      ** Execute environment
      ** Invoke db:drop (first_time)
      ** Invoke db:load_config (first_time)
      ** Execute db:load_config
      ** Execute db:drop
      ** Invoke db:structure:load (first_time)
      ** Invoke environment
      ** Invoke db:load_config
      ** Execute db:structure:load
      ```
      707be603
    • S
      Partial fix of database url tests · ba882934
      schneems 提交于
      Prior to #13463 when `DATABASE_URL` was set, Rails automagically used that value instead of the database.yml. There are tests in dbs_test that expect this to still be true. After that PR, `RAILS_DATABASE_URL` is expected to be read into the YAML file via ERB, this PR fixes that behavior.
      
      Note: this does not entirely fix the tests. It seems that `ActiveRecord::Tasks::DatabaseTasks.current_config` does not process the url string correctly (convert it into a hash), and ` ActiveRecord::Tasks::DatabaseTasks.structure_load(current_config, filename)` as well as other methods in `DatabaseTasks` expect a hash.
      
      It seems like we should involve the resolver somewhere in this process to correctly convert the database url, I do not know the best place for that /cc @josevalim
      ba882934
    • G
      Fix tests names: tokens.yml => secrets.yml · d80ad96b
      Guillermo Iguaran 提交于
      d80ad96b
  9. 25 12月, 2013 3 次提交
  10. 24 12月, 2013 2 次提交
  11. 22 12月, 2013 3 次提交
  12. 21 12月, 2013 1 次提交
  13. 20 12月, 2013 1 次提交
  14. 18 12月, 2013 1 次提交
  15. 17 12月, 2013 3 次提交
  16. 16 12月, 2013 1 次提交
  17. 15 12月, 2013 1 次提交
  18. 13 12月, 2013 4 次提交
  19. 06 12月, 2013 4 次提交
  20. 05 12月, 2013 2 次提交