Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 415 lines (258 sloc) 12.838 kb
0fb6bbd @rafaelfranca Merge pull request #7140 from seamusabshere/patch-1
rafaelfranca authored
1 ## Rails 3.2.9 (unreleased)
6abe0e7 @rafaelfranca Backport explain fixes.
rafaelfranca authored
2
3908706 @jrochkind ConnectionPool accepts spec key 'checkout_timeout'
jrochkind authored
3 * ConnectionPool recognizes checkout_timeout spec key as taking
4 precedence over legacy wait_timeout spec key, can be used to avoid
5 conflict with mysql2 use of wait_timeout. Closes #7684.
6
7 *jrochkind*
8
b8fba55 @tenderlove Merge pull request #3544 from amatsuda/_field_changed
tenderlove authored
9 * Rename field_changed? to _field_changed? so that users can create a field named field
10
11 *Akira Matsuda*, backported by *Steve Klabnik*
12
ee43989 @rafaelfranca Merge pull request #7661 from ernie/build-join-records-on-unsaved-hmt
rafaelfranca authored
13 * Fix creation of through association models when using `collection=[]`
14 on a `has_many :through` association from an unsaved model.
15 Fix #7661.
16
17 *Ernie Miller*
18
6abe0e7 @rafaelfranca Backport explain fixes.
rafaelfranca authored
19 * Explain only normal CRUD sql (select / update / insert / delete).
20 Fix problem that explains unexplainable sql. Closes #7544 #6458.
21
22 *kennyj*
23
f48bb01 Backport PostgreSQL auto-reconnect test coverage
Steve Jorgensen authored
24 * Backport test coverage to ensure that PostgreSQL auto-reconnect functionality
25 remains healthy.
26
2326d46 @frodsan fix markdown markup in AR/CHANGELOG
frodsan authored
27 *Steve Jorgensen*
f48bb01 Backport PostgreSQL auto-reconnect test coverage
Steve Jorgensen authored
28
9630485 @kennyj Backported #7572 to 3-2-stable. Use config['encoding'], because database...
kennyj authored
29 * Use config['encoding'] instead of config['charset'] when executing
30 databases.rake in the mysql/mysql2. A correct option for a database.yml
31 is 'encoding'.
32
33 *kennyj*
34
652107e @tchandy ConnectionAdapters::Column.type_cast_code should always convert values t...
tchandy authored
35 * Fix ConnectionAdapters::Column.type_cast_code integer conversion,
36 to always convert values to integer calling #to_i. Fixes #7509.
37
38 *Thiago Pradi*
0fb6bbd @rafaelfranca Merge pull request #7140 from seamusabshere/patch-1
rafaelfranca authored
39
5054e26 @rafaelfranca Merge pull request #7337 from adzap/string_to_dummy_time
rafaelfranca authored
40 * Fix time column type casting for invalid time string values to correctly return nil.
41
42 *Adam Meehan*
43
01d09a6 @senny set the configured #inheritance_column on #become (#7503)
senny authored
44 * Fix `becomes` when using a configured `inheritance_column`.
45
46 *Yves Senn*
47
648c5a1 @rafaelfranca Merge pull request #5210 from Pliny/masteri
rafaelfranca authored
48 * Fix `reset_counters` when there are multiple `belongs_to` association with the
49 same foreign key and one of them have a counter cache.
50 Fixes #5200.
51
52 *Dave Desrochers*
53
8905c1f @rafaelfranca Merge pull request #6986 from kennyj/fix_6975
rafaelfranca authored
54 * Round usec when comparing timestamp attributes in the dirty tracking.
55 Fixes #6975.
56
57 *kennyj*
58
fdf4eae @carlosantoniodasilva Merge pull request #7377 from brainopia/use_inversed_parent_for_first_an...
carlosantoniodasilva authored
59 * Use inversed parent for first and last child of has_many association.
60
61 *Ravil Bayramgalin*
62
d6dbd7f @rafaelfranca Merge pull request #7352 from aripollak/microsecond-timestamp
rafaelfranca authored
63 * Fix Column.microseconds and Column.fast_string_to_date to avoid converting
64 timestamp seconds to a float, since it occasionally results in inaccuracies
65 with microsecond-precision times. Fixes #7352.
66
67 *Ari Pollak*
68
8055cd6 @rafaelfranca Do not use update_column where update_attribute is not interchangeable
rafaelfranca authored
69 * Fix `increment!`, `decrement!`, `toggle!` that was skipping callbacks.
70 Fixes #7306.
71
72 *Rafael Mendonça França*
73
786713a @rafaelfranca Merge pull request #6073 from daveyeu/restore-state-on-record-invalid
rafaelfranca authored
74 * Fix AR#create to return an unsaved record when AR::RecordInvalid is
75 raised. Fixes #3217.
76
77 *Dave Yeu*
78
3307a2e @rafaelfranca Add CHANGELOG entry for #7286
rafaelfranca authored
79 * Remove unnecessary transaction when assigning has_one associations with a nil or equal value.
80 Fix #7191.
81
82 *kennyj*
83
5c2fc69 @rafaelfranca Add CHANGELOG entry
rafaelfranca authored
84 * Allow store to work with an empty column.
85 Fix #4840.
86
87 *Jeremy Walker*
88
ea48732 @rafaelfranca Add CHANGELOG entry for a935c7a
rafaelfranca authored
89 * Remove prepared statement from system query in postgresql adapter.
90 Fix #5872.
91
92 *Ivan Evtuhovich*
93
0fb6bbd @rafaelfranca Merge pull request #7140 from seamusabshere/patch-1
rafaelfranca authored
94 * Make sure `:environment` task is executed before `db:schema:load` or `db:structure:load`
95 Fixes #4772.
96
97 *Seamus Abshere*
98
99
ddedf5d @spastorino Add release date to CHANGELOGs
spastorino authored
100 ## Rails 3.2.8 (Aug 9, 2012) ##
a893672 @rafaelfranca Add CHANGELOG entry [ci skip]
rafaelfranca authored
101
55e05d4 @rafaelfranca Do not consider the numeric attribute as changed if the old value is
rafaelfranca authored
102 * Do not consider the numeric attribute as changed if the old value is zero and the new value
103 is not a string.
104 Fixes #7237.
105
106 *Rafael Mendonça França*
a893672 @rafaelfranca Add CHANGELOG entry [ci skip]
rafaelfranca authored
107
81542f9 @fxn removes the deprecation of update_attribute
fxn authored
108 * Removes the deprecation of `update_attribute`. *fxn*
109
857697b @rafaelfranca Fix CHANGELOGS
rafaelfranca authored
110 * Reverted the deprecation of `composed_of`. *Rafael Mendonça França*
111
0c52702 @jonleighton Revert "Deprecate :finder_sql, :counter_sql, :insert_sql, :delete_sql."
jonleighton authored
112 * Reverted the deprecation of `*_sql` association options. They will
857697b @rafaelfranca Fix CHANGELOGS
rafaelfranca authored
113 be deprecated in 4.0 instead. *Jon Leighton*
114
115 * Do not eager load AR session store. ActiveRecord::SessionStore depends on the abstract store
116 in Action Pack. Eager loading this class would break client code that eager loads Active Record
117 standalone.
118 Fixes #7160
0c52702 @jonleighton Revert "Deprecate :finder_sql, :counter_sql, :insert_sql, :delete_sql."
jonleighton authored
119
857697b @rafaelfranca Fix CHANGELOGS
rafaelfranca authored
120 *Xavier Noria*
6764b7b @spastorino Add missing CHANGELOG entries
spastorino authored
121
a893672 @rafaelfranca Add CHANGELOG entry [ci skip]
rafaelfranca authored
122 * Do not set RAILS_ENV to "development" when using `db:test:prepare` and related rake tasks.
123 This was causing the truncation of the development database data when using RSpec.
857697b @rafaelfranca Fix CHANGELOGS
rafaelfranca authored
124 Fixes #7175.
a893672 @rafaelfranca Add CHANGELOG entry [ci skip]
rafaelfranca authored
125
126 *Rafael Mendonça França*
127
d1b9cf2 @tenderlove updating release date
tenderlove authored
128 ## Rails 3.2.7 (Jul 26, 2012) ##
2109fd5 @fxn registers the deprecation of update_attribute in the CHANGELOG
fxn authored
129
a79bfa9 @jonleighton Deprecate :finder_sql, :counter_sql, :insert_sql, :delete_sql.
jonleighton authored
130 * `:finder_sql` and `:counter_sql` options on collection associations
131 are deprecated. Please transition to using scopes.
132
133 *Jon Leighton*
134
135 * `:insert_sql` and `:delete_sql` options on `has_and_belongs_to_many`
136 associations are deprecated. Please transition to using `has_many
137 :through`
138
139 *Jon Leighton*
140
857697b @rafaelfranca Fix CHANGELOGS
rafaelfranca authored
141 * `composed_of` has been deprecated. You'll have to write your own accessor
142 and mutator methods if you'd like to use value objects to represent some
143 portion of your models.
144
145 *Steve Klabnik*
146
2f930df @rafaelfranca Revert "Add update_columns and the suggestion of using update_columns
rafaelfranca authored
147 * `update_attribute` has been deprecated. Use `update_column` if
2109fd5 @fxn registers the deprecation of update_attribute in the CHANGELOG
fxn authored
148 you want to bypass mass-assignment protection, validations, callbacks,
149 and touching of updated_at. Otherwise please use `update_attributes`.
150
151 *Steve Klabnik*
152
8381d39 @tenderlove updating changelogs
tenderlove authored
153 ## Rails 3.2.6 (Jun 12, 2012) ##
959fb8e @jonleighton Revert "Perf: Don't load the association for #delete_all."
jonleighton authored
154
ceb8ec3 @tenderlove updating changelogs with security fixes
tenderlove authored
155 * protect against the nesting of hashes changing the
156 table context in the next call to build_from_hash. This fix
157 covers this case as well.
158
8381d39 @tenderlove updating changelogs
tenderlove authored
159 CVE-2012-2695
160
959fb8e @jonleighton Revert "Perf: Don't load the association for #delete_all."
jonleighton authored
161 * Revert earlier 'perf fix' (see 3.2.4 changelog / GH #6289). This
162 change introduced a regression (GH #6609). assoc.clear and
163 assoc.delete_all have loaded the association before doing the delete
164 since at least Rails 2.3. Doing the delete without loading the
165 records means that the `before_remove` and `after_remove` callbacks do
166 not get invoked. Therefore, this change was less a fix a more an
167 optimisation, which should only have gone into master.
168
169 *Jon Leighton*
170
b13d89e @rafaelfranca Add release date of 3.2.5 on the CHANGELOG
rafaelfranca authored
171 ## Rails 3.2.5 (Jun 1, 2012) ##
172
173 * Restore behavior of Active Record 3.2.3 scopes.
174 A series of commits relating to preloading and scopes caused a regression.
175
176 *Andrew White*
177
178
d3e5d1c @tenderlove updating changelogs
tenderlove authored
179 ## Rails 3.2.4 (May 31, 2012) ##
2c21a2f @benedikt Revert "Revert "Fix #5667. Preloading should ignore scoping.""
benedikt authored
180
b98d1e2 @jonleighton Perf: Don't load the association for #delete_all.
jonleighton authored
181 * Perf fix: Don't load the records when doing assoc.delete_all.
182 GH #6289. *Jon Leighton*
183
2c21a2f @benedikt Revert "Revert "Fix #5667. Preloading should ignore scoping.""
benedikt authored
184 * Association preloading shouldn't be affected by the current scoping.
185 This could cause infinite recursion and potentially other problems.
186 See GH #5667. *Jon Leighton*
187
d3e5d1c @tenderlove updating changelogs
tenderlove authored
188 * Datetime attributes are forced to be changed. GH #3965
189
190 * Fix attribute casting. GH #5549
191
192 * Fix #5667. Preloading should ignore scoping.
193
44aca7b @tenderlove adding security notifications to CHANGELOGs
tenderlove authored
194 * Predicate builder should not recurse for determining where columns.
195 Thanks to Ben Murphy for reporting this! CVE-2012-2661
196
b13d89e @rafaelfranca Add release date of 3.2.5 on the CHANGELOG
rafaelfranca authored
197
3005f58 @rafaelfranca Add release data to Rails 3.2.3
rafaelfranca authored
198 ## Rails 3.2.3 (March 30, 2012) ##
3bfd651 @vijaydev changelog updates [ci skip]
vijaydev authored
199
90d9635 @pixeltrix Add dynamic find_or_create_by_{attribute}! method.
pixeltrix authored
200 * Added find_or_create_by_{attribute}! dynamic method. *Andrew White*
201
3bfd651 @vijaydev changelog updates [ci skip]
vijaydev authored
202 * Whitelist all attribute assignment by default. Change the default for newly generated applications to whitelist all attribute assignment. Also update the generated model classes so users are reminded of the importance of attr_accessible. *NZKoz*
203
204 * Update ActiveRecord::AttributeMethods#attribute_present? to return false for empty strings. *Jacobkg*
205
206 * Fix associations when using per class databases. *larskanis*
207
208 * Revert setting NOT NULL constraints in add_timestamps *fxn*
209
210 * Fix mysql to use proper text types. Fixes #3931. *kennyj*
211
212 * Fix #5069 - Protect foreign key from mass assignment through association builder. *byroot*
213
db743ff @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
214
215 ## Rails 3.2.2 (March 1, 2012) ##
216
217 * No changes.
218
219
97e8d1d @fxn CHANGELOG revision for v3.2.1
fxn authored
220 ## Rails 3.2.1 (January 26, 2012) ##
fab664a @jonleighton Fix another race condition.
jonleighton authored
221
2809375 @fxn registers 2483460 in the CHANGELOG
fxn authored
222 * The threshold for auto EXPLAIN is ignored if there's no logger. *fxn*
223
97e8d1d @fxn CHANGELOG revision for v3.2.1
fxn authored
224 * Call `to_s` on the value passed to `table_name=`, in particular symbols
225 are supported (regression). *Sergey Nartimov*
226
fab664a @jonleighton Fix another race condition.
jonleighton authored
227 * Fix possible race condition when two threads try to define attribute
97e8d1d @fxn CHANGELOG revision for v3.2.1
fxn authored
228 methods for the same class. *Jon Leighton*
229
fab664a @jonleighton Fix another race condition.
jonleighton authored
230
f36dcaf @dhh Preparing for 3.2.0 release
dhh authored
231 ## Rails 3.2.0 (January 20, 2012) ##
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
232
4c5b73f @tenderlove Merge pull request #4531 from exviva/pessimistic_with_lock
tenderlove authored
233 * Added a `with_lock` method to ActiveRecord objects, which starts
234 a transaction, locks the object (pessimistically) and yields to the block.
235 The method takes one (optional) parameter and passes it to `lock!`.
236
237 Before:
238
239 class Order < ActiveRecord::Base
240 def cancel!
241 transaction do
242 lock!
243 # ... cancelling logic
244 end
245 end
246 end
247
248 After:
249
250 class Order < ActiveRecord::Base
251 def cancel!
252 with_lock do
253 # ... cancelling logic
254 end
255 end
256 end
257
258 *Olek Janiszewski*
259
3f16f5b @spastorino Add CHANGELOG entry
spastorino authored
260 * 'on' and 'ON' boolean columns values are type casted to true
261 *Santiago Pastorino*
262
35a1744 @drogus Allow to run migrations with given scope, with SCOPE=<scope>
drogus authored
263 * Added ability to run migrations only for given scope, which allows
264 to run migrations only from one engine (for example to revert changes
265 from engine that you want to remove).
266
267 Example:
268 rake db:migrate SCOPE=blog
269
4c5b73f @tenderlove Merge pull request #4531 from exviva/pessimistic_with_lock
tenderlove authored
270 *Piotr Sarnacki*
35a1744 @drogus Allow to run migrations with given scope, with SCOPE=<scope>
drogus authored
271
272 * Migrations copied from engines are now scoped with engine's name,
273 for example 01_create_posts.blog.rb. *Piotr Sarnacki*
274
de24ed9 @fxn removes the convenience instance version of AR::Base.silence_auto_explai...
fxn authored
275 * Implements `AR::Base.silence_auto_explain`. This method allows the user to
276 selectively disable automatic EXPLAINs within a block. *fxn*
0be5ada @fxn implements AR::Base(.|#)silence_auto_explain
fxn authored
277
0306f82 @fxn implements automatic EXPLAIN logging for slow queries
fxn authored
278 * Implements automatic EXPLAIN logging for slow queries.
279
280 A new configuration parameter `config.active_record.auto_explain_threshold_in_seconds`
281 determines what's to be considered a slow query. Setting that to `nil` disables
282 this feature. Defaults are 0.5 in development mode, and `nil` in test and production
283 modes.
284
285 As of this writing there's support for SQLite, MySQL (mysql2 adapter), and
286 PostgreSQL.
287
288 *fxn*
a382d60 @bogdan ActiveRecord::Relation#pluck method
bogdan authored
289
290 * Implemented ActiveRecord::Relation#pluck method
291
292 Method returns Array of column value from table under ActiveRecord model
2809375 @fxn registers 2483460 in the CHANGELOG
fxn authored
293
a382d60 @bogdan ActiveRecord::Relation#pluck method
bogdan authored
294 Client.pluck(:id)
295
296 *Bogdan Gusiev*
297
0e2477b @tenderlove Automatic closure of connections in threads is deprecated. For example
tenderlove authored
298 * Automatic closure of connections in threads is deprecated. For example
299 the following code is deprecated:
300
301 Thread.new { Post.find(1) }.join
302
303 It should be changed to close the database connection at the end of
304 the thread:
305
306 Thread.new {
307 Post.find(1)
308 Post.connection.close
309 }.join
2809375 @fxn registers 2483460 in the CHANGELOG
fxn authored
310
0e2477b @tenderlove Automatic closure of connections in threads is deprecated. For example
tenderlove authored
311 Only people who spawn threads in their application code need to worry
312 about this change.
313
34609d6 @jonleighton Deprecate set_inheritance_column in favour of self.inheritance_column=
jonleighton authored
314 * Deprecated:
315
316 * `set_table_name`
317 * `set_inheritance_column`
7af719e @jonleighton Deprecate set_sequence_name in favour of self.sequence_name=
jonleighton authored
318 * `set_sequence_name`
1a474cc @jonleighton Deprecate set_primary_key in favour of self.primary_key=
jonleighton authored
319 * `set_primary_key`
f3c84dc @jonleighton Deprecate set_locking_column in favour of self.locking_column=
jonleighton authored
320 * `set_locking_column`
34609d6 @jonleighton Deprecate set_inheritance_column in favour of self.inheritance_column=
jonleighton authored
321
322 Use an assignment method instead. For example, instead of `set_table_name`, use `self.table_name=`:
0b72a04 @jonleighton Deprecate set_table_name in favour of self.table_name= or defining your ...
jonleighton authored
323
324 class Project < ActiveRecord::Base
325 self.table_name = "project"
326 end
327
34609d6 @jonleighton Deprecate set_inheritance_column in favour of self.inheritance_column=
jonleighton authored
328 Or define your own `self.table_name` method:
329
0b72a04 @jonleighton Deprecate set_table_name in favour of self.table_name= or defining your ...
jonleighton authored
330 class Post < ActiveRecord::Base
331 def self.table_name
332 "special_" + super
333 end
334 end
335 Post.table_name # => "special_posts"
336
337 *Jon Leighton*
338
10834e9 @joshsusser changelog & docs for GeneratedFeatureMethods
joshsusser authored
339 * Generated association methods are created within a separate module to allow overriding and
340 composition using `super`. For a class named `MyModel`, the module is named
341 `MyModel::GeneratedFeatureMethods`. It is included into the model class immediately after
342 the `generated_attributes_methods` module defined in ActiveModel, so association methods
343 override attribute methods of the same name. *Josh Susser*
344
e7b7b44 @fxn implements AR::Relation#explain
fxn authored
345 * Implemented ActiveRecord::Relation#explain. *fxn*
346
562583c @jonleighton Add ActiveRecord::Relation#uniq for toggling DISTINCT in the SQL query
jonleighton authored
347 * Add ActiveRecord::Relation#uniq for generating unique queries.
348
349 Before:
350
351 Client.select('DISTINCT name')
352
353 After:
354
355 Client.select(:name).uniq
356
357 This also allows you to revert the unqueness in a relation:
358
359 Client.select(:name).uniq.uniq(false)
360
361 *Jon Leighton*
362
69dcd45 @vjebelev AR changes to support creating ordered (asc, desc) indexes
vjebelev authored
363 * Support index sort order in sqlite, mysql and postgres adapters. *Vlad Jebelev*
364
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
365 * Allow the :class_name option for associations to take a symbol (:Client) in addition to
366 a string ('Client').
367
368 This is to avoid confusing newbies, and to be consistent with the fact that other options
369 like :foreign_key already allow a symbol or a string.
370
371 *Jon Leighton*
372
373 * In development mode the db:drop task also drops the test database. For symmetry with
374 the db:create task. *Dmitriy Kiriyenko*
375
376 * Added ActiveRecord::Base.store for declaring simple single-column key/value stores *DHH*
377
378 class User < ActiveRecord::Base
379 store :settings, accessors: [ :color, :homepage ]
380 end
381
382 u = User.new(color: 'black', homepage: '37signals.com')
383 u.color # Accessor stored attribute
384 u.settings[:country] = 'Denmark' # Any attribute, even if not specified with an accessor
385
386
387 * MySQL: case-insensitive uniqueness validation avoids calling LOWER when
388 the column already uses a case-insensitive collation. Fixes #561.
389
390 *Joseph Palermo*
391
392 * Transactional fixtures enlist all active database connections. You can test
393 models on different connections without disabling transactional fixtures.
394
395 *Jeremy Kemper*
396
397 * Add first_or_create, first_or_create!, first_or_initialize methods to Active Record. This is a
398 better approach over the old find_or_create_by dynamic methods because it's clearer which
399 arguments are used to find the record and which are used to create it:
400
401 User.where(:first_name => "Scarlett").first_or_create!(:last_name => "Johansson")
402
403 *Andrés Mejía*
404
405 * Fix nested attributes bug where _destroy parameter is taken into account
406 during :reject_if => :all_blank (fixes #2937)
407
408 *Aaron Christy*
2809375 @fxn registers 2483460 in the CHANGELOG
fxn authored
409
04d5eae @bdurand Add ActiveSupport::Cache::NullStore to expose caching interface without ...
bdurand authored
410 * Add ActiveSupport::Cache::NullStore for use in development and testing.
411
412 *Brian Durand*
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
413
8efced6 @fxn CHANGELOGs are now per branch
fxn authored
414 Please check [3-1-stable](https://github.com/rails/rails/blob/3-1-stable/activerecord/CHANGELOG.md) for previous changes.
Something went wrong with that request. Please try again.