aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2015-02-10 09:04:47 +0900
committerRyuta Kamizono <kamipo@gmail.com>2015-02-12 07:23:53 +0900
commit1502caefd30b137fd1a0865be34c5bbf85ba64c1 (patch)
tree0926f55cc6e11e5c6f16227e85d9b9bc8bdba873 /activerecord/lib/active_record/connection_adapters/abstract
parent933decceaf6092020ba7ba768b51b2db9d5b882f (diff)
downloadrails-1502caefd30b137fd1a0865be34c5bbf85ba64c1.tar.gz
rails-1502caefd30b137fd1a0865be34c5bbf85ba64c1.tar.bz2
rails-1502caefd30b137fd1a0865be34c5bbf85ba64c1.zip
Allow `:precision` option for time type columns
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
index 3ca1c3c49a..c9180f64db 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -840,6 +840,12 @@ module ActiveRecord
raise ArgumentError, "Error adding decimal column: precision cannot be empty if scale is specified"
end
+ elsif [:datetime, :time].include?(type) && precision ||= native[:precision]
+ if (0..6) === precision
+ column_type_sql << "(#{precision})"
+ else
+ raise(ActiveRecordError, "No #{native[:name]} type has precision of #{precision}. The allowed range of precision is from 0 to 6")
+ end
elsif (type != :primary_key) && (limit ||= native.is_a?(Hash) && native[:limit])
column_type_sql << "(#{limit})"
end