部署 cap 部署时,releases 中生成的目录名是时间戳,但是不是东八区,而是 0 时区

mahone3297 · April 20, 2014 · Last by dorentus replied at April 20, 2014 · 2381 hits

cap 部署时,releases 中生成的目录名是时间戳,但是不是东八区,而是 0 时区 这样的话,看起来就不太方便,有时候需要自己去算,看看上次部署是什么时候。 有没有解决方案?哪里可以配置时区?

这得去看源码了。

所有记录都应该用 UTC 表示,使用的时候对应转换至本地时区。用东八区作为 timestamp 无论是数据库还是文件系统都不是个好主意。

#1 楼 @Rei 看了一下:

env.rb 取了 timestamp

def release_timestamp
    env.timestamp.strftime("%Y%m%d%H%M%S")
end

configuration.rb 生成的时候的确是 UTC

def timestamp
    @timestamp ||= Time.now.utc
end

所以将本机的 configuration.rb 文件里面 80 行.utc 删掉就是本地时间了(也许我应该考虑给他们提个 pull request?) :😄:

#2 楼 @kgen 我决定不提了。。

#4 楼 @ericguo 你可以打个 monkey patch。

我也觉得 UTC 好。

#4 楼 @ericguo 这个。。。决定不提的原因是? #6 楼 @Rei 看了 2 位的讨论,我也好像觉得 UTC 比较好了。。。

#2 楼 @kgen 嗯,有道理,支持。。。就像 php 所有编码都应该用 utf8 一样。。。

Unknow user #9 April 20, 2014

想看上次部署是什么时候这个需求,似乎可以写成一个 cap 的插件吧 列出服务器上所有的 releases,显示的时区作为参数或者配置(默认可以使用本地机器的时区) 甚至还可以加上按时间段筛选的功能……

You need to Sign in before reply, if you don't have an account, please Sign up first.