aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/railties
Commit message (Collapse)AuthorAgeFilesLines
...
* Schema creation doesn't load the appTamir Duberstein2015-02-111-1/+1
|
* Use `SCHEMA` instead of `DB_STRUCTURE` for specifiying structure file.Dieter Komendera2015-01-081-3/+3
| | | | | `rake test:load_structure` already uses `SCHEMA` and there's no need to maintain two different env vars.
* Replace deprecated `#load_schema` with `#load_schema_for`.Yves Senn2014-12-231-2/+2
|
* Remove environment dependency for db:schema:loadCaleb Thompson2014-12-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | All of the behavior :environment was giving (that db:schema:load needed) was provided as well with :load_config. This will address an issue introduced in https://github.com/rails/rails/pull/15394. The fact that db:schema:load now drops and creates the database causes the Octopus gem to have [an issue](https://github.com/tchandy/octopus/issues/273) during the drop step for the test database (which wasn't happening in db:schema:load before). The error looks like: ActiveRecord::StatementInvalid: PG::ObjectInUse: ERROR: cannot drop the currently open database : DROP DATABASE IF EXISTS "app_test" Because of the timing, this issue is present in master, 4-2-*, and 4.1.8. A note to forlorn developers who might see this: "Additionally" in a commit message means you should have a separate commit, with a separate justification for changes. Small commits with big messages are your friends.
* Pass symbol as an argument instead of a blockErik Michaels-Ober2014-11-291-1/+1
|
* bring back `db:test:prepare`.Yves Senn2014-11-251-5/+5
| | | | | | | | | | | | | | | This reverts deprecations added in #13528. The task is brought back for two reasons: 1. Give plugins a way to hook into the test database initialization process 2. Give the user a way to force a test database synchronization While `test:prepare` is still a dependency of every test task, `db:test:prepare` no longer hooks into it. This means that `test:prepare` runs before the schema is synchronized. Plugins, which insert data can now hook into `db:test:prepare`. The automatic schema maintenance can't detect when a migration is rolled-back, modified and reapplied. In this case the user has to fall back to `db:test:prepare` to force the synchronization to happen.
* Add comment to point out String#[] is intentionalAndrew White2014-11-021-0/+1
|
* Revert "Replace String index juggling with Pathname goodness in ↵yuuji.yaginuma2014-11-021-1/+1
| | | | | | | | db:fixtures:load" This reverts commit 482fdad5ef8a73688b50bba3991dd4ef6f286edd. Fixes #17237.
* Use Hash#each_key instead of Hash#keys.eachErik Michaels-Ober2014-09-291-1/+1
| | | | | | Hash#keys.each allocates an array of keys; Hash#each_key iterates through the keys without allocating a new array. This is the reason why Hash#each_key exists.
* schema rake tasks are specific about the configuration to act on.Yves Senn2014-08-061-10/+4
| | | | | | | | | | The rake tasks and the `DatabaseTakss` adapter classes used to assume a configuration at some places. This forced the rake tasks to establish a specific connection before calling into `load_schema`. After #15394 this started to cause issues because it could `purge` the wrong database before loading the schema.
* Add ActiveRecord::Tasks::DatabaseTasks.migrateJack Danger Canty2014-07-311-4/+1
| | | | | | This extracts the logic that was embedded in a Rake task into a static method. Bonus: the first test for `rake db:migrate`
* Use AR::SchemaMigration.table_exists? call instead of longish AR::Base...etc,etcViktar Basharymau2014-06-271-1/+1
|
* Extract AR::SchemaMigration.normalized_versions methodViktar Basharymau2014-06-271-2/+1
|
* db:migrate:status refactoring: Rewrite hand-crafted SQL query with ↵Viktar Basharymau2014-06-271-1/+1
| | | | ActiveRecord#pluck
* Use Array#flat_map and Array#grep in db:migrate:status taskViktar Basharymau2014-06-271-10/+10
| | | | It allows the code to be more declarative and elegant.
* Add explaining variables to db:migrate:statusViktar Basharymau2014-06-271-2/+2
|
* Replace String index juggling with Pathname goodness in db:fixtures:loadViktar Basharymau2014-06-271-1/+1
|
* db:fixtures:load refactoring: remove unnecessary loopViktar Basharymau2014-06-271-3/+1
| | | | | `ActiveRecord::FixtureSet.create_fixtures` can accept an array of fixture_files.
* Extract `fixture_files` variable in fixtures:load rake taskViktar Basharymau2014-06-271-1/+7
|
* Replace a bit of cryptic code in fixtures:load rake task with plain stupid RubyViktar Basharymau2014-06-271-1/+5
|
* Get rid of duplication in db:fixtures:{identify,load}Viktar Basharymau2014-06-271-11/+2
|
* db:fixtures:{identify,load} tasks respect AR::Tasks::DatabaseTasks.rootViktar Basharymau2014-06-271-2/+2
| | | | | | | Before this commit, if `ENV['FIXTURES_PATH']` was set, then `Rails.root` was used, otherwise the app used `ActiveRecord::Tasks::DatabaseTasks.root`. Now it is consistent.
* Simplify complex code in databases.rakeViktar Basharymau2014-06-271-2/+2
|
* add `bin/rake db:purge` task to empty the current database.Yves Senn2014-06-171-0/+11
|
* `bin/rake db:migrate:status` works with legacy migration numbers.Yves Senn2014-06-061-3/+4
| | | | | | | The migration numbers were normalized different ways. This left the task output in an inconsistent state. Closes #15538.
* rake railties:install:migrations respects the order of railtiesArun Agrawal2014-05-271-1/+1
| | | | This PR fixes #8930 and some stuff from #8985
* Return a non zero code when db has never been setup on statusPaul B2014-05-071-2/+1
|
* make `db:structure:load` listed with `rake -T`Greg Molnar2014-05-021-1/+1
|
* Replace trivial regexp with string or index, twice as fastKelley Reynolds2014-03-281-1/+1
|
* only dump schema information if migration table exists. Closes #14217Yves Senn2014-03-201-1/+2
|
* Merge pull request #14048 from pcreux/better-error-message-db-migrate-downCarlos Antonio da Silva2014-02-141-1/+1
|\ | | | | Add hint to error message of task db:migrate:down
| * Add hint to error message of task db:migrate:downPhilippe Creux2014-02-131-1/+1
| |
* | Add config to disable schema dump after migrationEmil Soman2014-02-061-1/+1
|/ | | | | | | | | * Add a config on Active Record named `dump_schema_after_migration` * Schema dump doesn't happen if the config is set to false * Set default value of the config to true * Set config in generated production environment file to false * Update configuration guide * Update CHANGELOG
* Ensure Active Record connection consistencyschneems2014-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* create/drop test and development databases only if RAILS_ENV is nilDamien Mathieu2014-01-081-2/+2
| | | | Closes #13625
* Add deprecation I accidentally missedJon Leighton2014-01-041-1/+1
|
* Automatically maintain test database schemaJon Leighton2014-01-021-17/+17
| | | | | | | | | | | | | | * 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".
* Remove deprecation warning for FIXTURES_PATHPiotr Sarnacki2013-12-301-6/+0
| | | | | | | | FIXTURES_PATH has a bit different case than DatabaseTasks.fixtures_path, which was added along with deprecation. A use case for FIXTURES_PATH could be loading fixtures from a different directory just for a given test run. The implementation is fairly simple, so leaving it as it is won't hurt.
* Guarantee the connection resolver handles string valuesJosé Valim2013-12-231-10/+2
| | | | | | | | | This commit also cleans up the rake tasks that were checking for DATABASE_URL in different places. In fact, it would be nice to deprecate DATABASE_URL usage in the long term, considering the direction we are moving of allowing those in .yml files.
* db:test:clone and prepare must load environmentArthur Neves2013-12-141-3/+2
| | | | | | db:test:clone and db:test:prepare use ActiveRecord::Base. configurations, so we need to load the rails environment, otherwise the config wont be in place.
* Revert "Explicitly exit with status "1" for create and drop failures"Rafael Mendonça França2013-11-191-26/+10
| | | | | | | | | | This reverts commit 22f80ae57b26907f662b7fd50a7270a6381e527e. See https://github.com/rails/rails/commit/22f80ae57b26907f662b7fd50a7270a6381e527e#commitcomment-4640676 Conflicts: activerecord/CHANGELOG.md
* Merge pull request #12531 from iamvery/database-tasks-exit-statusRafael Mendonça França2013-11-151-10/+26
|\ | | | | | | | | | | | | Explicitly exit with status "1" for create and drop task failures Conflicts: activerecord/CHANGELOG.md
| * Explicitly exit with status "1" for create and drop failuresJay Hayes2013-11-111-10/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * A non-zero exit status allows subsequent shell commands to be chained together such as: `rake db:reset test:prepare && rspec && cap deploy` (if you're feeling brave :) * Any exceptions raised during the `create` and `drop` tasks are caught in order to print a "pretty" message to the user. Unfortunately doing so prevents rake from aborting with a non-zero exit status to the shell. * Therefore we re-raise the exceptions after the "pretty" message and re-catch them in the task. * From the task we explicitly exit with a non-zero status. This method was chosen (rather than just letting rake fail from the exception) so that the backtrace is suppressed and the output to stderr is unchanged. * Update activerecord CHANGELOG
* | Warnings removed for ruby trunkArun Agrawal2013-11-011-1/+1
|/ | | Same as 4d4ff531b8807ee88a3fc46875c7e76f613956fb
* newline at end of structure.sql fileChad Jolly2013-10-131-0/+1
|
* Revert "Merge pull request #12085 from valk/master"Santiago Pastorino2013-09-031-3/+1
| | | | | This reverts commit 15455d76c8d33b3767a61e0cdd2de0ff592098ef, reversing changes made to ffa56f73d5ae98fe0b8b6dd2ca6f0dffac9d9217.
* FIX reload! within rails console --sandbox causes undefined method rollback ↵Val Kotlarov Hoffman2013-08-301-1/+3
| | | | upon exiting [https://github.com/rails/rails/issues/11834]
* only reconnect if there was already an active connectionAaron Patterson2013-08-111-1/+4
| | | | | If you're using an in-memory database for the test database, reconnecting will lose all information that schema:load did for us.
* Improved grammar and replaced 'dbs' slang with 'databases'Prathamesh Sonpatki2013-06-271-3/+3
|
* Properly namespace DatabaseTasksPiotr Sarnacki2013-06-141-1/+1
|