summaryrefslogtreecommitdiff
path: root/lib/forever.rb
diff options
context:
space:
mode:
authorMayra Cabrera <mcabrera@gitlab.com>2018-04-06 14:48:17 -0500
committerMayra Cabrera <mcabrera@gitlab.com>2018-04-06 22:28:44 -0500
commit5bc58bac2678aed9c8b2318f9f4d4825baa2b110 (patch)
treef35313fd689afa287f6c93a3d78ce8a0d61cc71c /lib/forever.rb
parentd6450717abefbe4dbf891cb4d285f6c84e44f168 (diff)
downloadgitlab-ce-5bc58bac2678aed9c8b2318f9f4d4825baa2b110.tar.gz
Handle limit for datetime attributes on MySQL
The TIMESTAMP data type is used for values that contain both date and time parts. TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC. A Forever lib class was included to handle future dates for PostgreSQL and MySQL, also changes were made to DeployToken to enforce Forever.date Also removes extra conditional from JwtController
Diffstat (limited to 'lib/forever.rb')
-rw-r--r--lib/forever.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/forever.rb b/lib/forever.rb
new file mode 100644
index 00000000000..7df17912544
--- /dev/null
+++ b/lib/forever.rb
@@ -0,0 +1,13 @@
+class Forever
+ POSTGRESQL_DATE = DateTime.new(3000, 1, 1)
+ MYSQL_DATE = DateTime.new(2038, 01, 19)
+
+ # MySQL timestamp has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC
+ def self.date
+ if Gitlab::Database.postgresql?
+ POSTGRESQL_DATE
+ else
+ MYSQL_DATE
+ end
+ end
+end