I\'m looking for more than the simple type listing that is found on this page:
:primary_key, :string, :text, :integer, :float, :decimal, :datetime, :t
Guidelines built from personal experience:
serial primary key in postgreSQL). Its use is somewhat complicated and not recommended.validates_uniqueness_of and add_index with the :unique => true option) instead to simulate primary key functionality on one of your own fields.These are the types about which confusion often exists; I hope this helps. I really don't know why there isn't official documentation about these. Also, I imagine these database adapters you referred to were written by the same people who wrote Rails, so they probably didn't need any documentation to go by when they were writing the adapters. Hope this helps!
Note: the presence of both :DateTime and :Timestamp, from what I can find, is included by Rails mostly for compatibility with database systems. For instance, MySQL's TIMESTAMP datatype is stored as a unix timestamp. Its valid range goes from 1970 to 2038, and the time is stored as the number of seconds that have elapsed since the last epoch, which is supposedly standard, but in practice can differ from system to system. Recognizing that relative time was not a good thing to have in databases, MySQL later introduced the DATETIME datatype, which stores every digit in the year, month, day, hour, minute and second, at the cost of a size increase. The TIMESTAMP datatype was retained for backwards compatibility. Other database systems went through similar evolutions. Rails recognized that multiple standards existed, and provided interfaces to both. However, Rails ActiveRecord defaults both :Timestamp and :DateTime to UTC dates stored in MySql's DATETIME, so it makes no functional difference to Rails programmers. These exist so that users who wish to differentiate between the two can do so. (For a more in-depth explanation, see this SO answer).