Rails' datetime und timestamp in eine migration-Datei sind die gleichen für MySQL und Sqlite3?
:datetime
und :timestamp
eine migration-Datei scheint die gleiche MySQL und Sqlite3, und beide anzeigen zu datetime
in der Datenbank-Seite, außer ich kann nicht finden, dass in einer formalen Dokumentation.
Außerdem, was ist, wenn unser Rails-Projekt kann die Verwendung anderer DBMS, dann sollten wir :datetime
oder :timestamp
wenn wir script/generate
(oder rails generate
) unser Modell oder Gerüst?
InformationsquelleAutor | 2010-09-07
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde empfehlen, mit der
:datetime
, weil so ist es klar, was zu verwenden. Ich glaube, Schienen ist mitDATETIME
für beide in der DB ist da das Problem, dass die datetimes darstellbar mit unix timestamp oder die MySQL -TIMESTAMP
Feld. Seit timestamp ist standardmäßig eine 32-bit-Integer (siehe Wikipedia:Timestamp) es können nur Datumsangaben zwischen1901-12-13
(oder1970-01-01
wenn keine negativen Werte zulässig sind, wie in MySQL) und2038-01-19
. Nach oder vor dem überlauf wird. Dies ist die Jahr 2038 problem.So, um es jedem klar, würde ich es nennen
:datetime
in der migration.created_at
undupdated_at
alstimestamp
. Sollte es nichtdatetime
alstimestamp
erstellen problem nach 19 Jan 2038?