トップ «前の日記(2016/01/16 (土) ) 最新 次の日記(2016/01/18 (月) )» 編集 RSS feed

HsbtDiary


2016/01/17 (日) [長年日記]

bugs.r-l.o の postgres を 9.4 にアップグレード

heroku の postgres が 9.5 を beta バージョンとして提供開始したというのを思い出して ruby-lang.org で使っている heroku アプリケーション群も後追いとして postgres 9.4 にアップグレードしておいた。

https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases

具体的には上の手順に書いてある通りで新規に 9.4 なデータベースを作ってから pg:copy でダンプリストア実行、pg:promote で切り替えって感じ。

$ heroku addons:create heroku-posgres:standard-0
$ heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_COLOR
$ heroku pg:promote HEROKU_POSTGRESQL_COLOR
$ heroku addons:destroy HEROKU_POSTGRESQL_OLDCOLOR

bugs.r-l.o は 500MB 弱な普通のデータベースなので、特にメンテナンスは入れないで1分程度のスイッチタイムでしゅっとやってしまった。

過去に実行した go get をもう一度実行する

主に CLI で機能が追加された、であったり不具合修正したというようなときにヒストリーから go get -u で一生懸命探しだして実行するよりも今まで実行した go get -u をまるごと実行してひとまず最新の環境で地雷を踏み続けるという方が楽なので、ヒストリファイルから探しだして実行する雑スクリプトを書いた

#/usr/bin/env ruby

histories = File.readlines(File.expand_path(ENV['HISTFILE']))

gogets = histories.map do |history|
  begin
    cmd = history.split(';')[1]&.chomp
    # only git.example.com, github.com, golang.org, google.golang.org etc.
    cmd.downcase if cmd =~ /^go get -u [git|go]/
  rescue ArgumentError => e
    next
  end
end.compact.sort.uniq

gogets.each do |cmd|
  if cmd =~ /go get -u (.*)/
    puts " Upgrading: #{$1}"
    `#{cmd}`
  end
end

すでにリポジトリが消えていたり、 go get する対象のディレクトリが変わっていたりすると死ぬのだけど、その辺は雑に無視している。