Milliseconds in your Timestamps.
We got 'em, you want 'em.
Shit needs to be PRECISE
MIT
| class MillisecondsMigration < ActiveRecord::Migration | |
| # Include non default date stamps here | |
| # Key :table_name | |
| # value [:column_names] | |
| # NOTE: only MySQL 5.6.4 and above supports DATETIME's with more precision than a second. | |
| TABLES_AND_COLUMNS = { | |
| # Your :table_names here | |
| } | |
| STANDARD_ACTIVE_RECORD_COLUMNS = [:created_at, :updated_at] | |
| TABLE_AND_COLUMNS.each {|k,v| v.concat(STANDARD_ACTIVE_RECORD_COLUMNS)} | |
| def up | |
| TABLE_AND_COLUMNS.each do |table, columns| | |
| columns.each do |column| | |
| # MySQL supports time precision down to microseconds -- DATETIME(6) | |
| change_column table, column, :datetime, limit: 3 | |
| end | |
| end | |
| end | |
| def down | |
| TABLE_AND_COLUMNS.each do |table, columns| | |
| columns.each do |column| | |
| echange_column table, column, :datetime | |
| end | |
| end | |
| end | |
| end |
| # Save this in config/initializers/WHATEVER.rb | |
| class Time | |
| # Ruby will complain that it has already initialzed DATE_FORMATS because it has... | |
| DATE_FORMATS = { | |
| # Where 3N is the number of places after the decimal (.) | |
| # If you want microseconds change 3N to 6N | |
| :db => '%Y-%m-%d %H:%M:%S.%3N' | |
| } | |
| end |
6 is working fine but if i keep 3 I am getting this error