Skip to content

HTTPS clone URL

Subversion checkout URL

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