Les Rails' datetime et timestamp dans un fichier de migration sont les mêmes pour MySQL et Sqlite3?
:datetime
et :timestamp
dans un fichier de migration semble être la même dans MySQL et Sqlite3, et ils ont tous les deux une carte de datetime
dans la base de données côté, sauf que je ne peux pas trouver dans la documentation officielle.
Aussi, qu'en est-il si nos Rails de projet peut utiliser d'autres SGBD, alors devrions-nous utiliser :datetime
ou :timestamp
lorsque nous script/generate
(ou rails generate
) notre Modèle ou un Échafaudage?
OriginalL'auteur | 2010-09-07
Vous devez vous connecter pour publier un commentaire.
Je vous conseille d'utiliser le
:datetime
, parce que, donc, il est clair qu'elle doit utiliser. Je crois que rails est à l'aide deDATETIME
pour à la fois dans la DB est parce que le Problème que la datetimes représentable avec le timestamp unix ou le MySQLTIMESTAMP
champ. Depuis le timestamp est par défaut un Entier 32 bits (voir Wikipédia:Timestamp) il ne peut représenter les dates entre1901-12-13
(ou1970-01-01
si pas de valeurs négatives sont autorisées comme dans MySQL) et2038-01-19
. Après ou avant qu'elle déborde. C'est le l'année 2038 problème.Afin de le rendre clair pour tout le monde, je voudrais nom il
:datetime
dans la migration.created_at
etupdated_at
commetimestamp
. Ne devrait-elle pas êtredatetime
commetimestamp
permettra de créer de problème après le 19 Janvier 2038?OriginalL'auteur jigfox