tmegos blog

Web developer

GitとSubversionを同期してくれるSubGitを全力で推したい

会社のバージョン管理ツールをSubversonからGitへと緩やかに移行中です。
会社から求められていたのは、

  • 今までの歴史はすべて引き継ぐ
  • Git移行後もSubversionと同期を取ること(徐々にGitに慣れてもらうため)

の2つでした。

続きを読む

GitLabのリストア手順について

手順

基本的には以下の公式サイトの手順通りに行えばリストアできます。

docs.gitlab.com

注意点

BACKUPオプションはバックアップファイルの日付の部分のみを指定する。

BACKUP=timestamp_of_backup (required if more than one backup exists)

例えば以下のようにファイル名を指定すると、語尾に_gitlab_backup.tarがつけられ、ファイルが見つからない旨のエラーが発生します。

# gitlab-rake gitlab:backup:restore BACKUP=1487786527_2017_02_23_gitlab_backup.tar
The backup file 1487786527_2017_02_23_gitlab_backup.tar_gitlab_backup.tar does not exist!

正しいコマンドは以下の通り。

# gitlab-rake gitlab:backup:restore BACKUP=1487786527_2017_02_23 #日付のみ指定

パスを指定する場合も_gitlab_backup.tarは不要。
/mnt/backup/1487786527_2017_02_23_gitlab_backup.tarにファイルがあるとすれば以下のように指定する。

# gitlab-rake gitlab:backup:restore BACKUP=/mnt/backup/1487786527_2017_02_23

nginxでautoindexのファイル更新日時をJSTにする

autoindex_localtimeonにすると、nginxを動かしているlocaltimeで表示されるようになる。
autoindexonにするだけではグリニッジ標準時で表示されてしまうので注意。

server {
    location / {
        root   /path/to/html;
        autoindex on;
        autoindex_localtime on;
    }
}

Module ngx_http_autoindex_module

オンプレミスでもGitLabでバックアップに失敗していたので対応した

GitLab.comのバックアップがうまくいっていなかったことが話題になっていますが、環境によってはオンプレミスで動かしているバックアップも失敗しているかもしれません。
といいますか私の環境がそうでした

GitLab.com Database Incident - 2017/01/31

GitLab.com melts down after wrong directory deleted, backups fail • The Register

続きを読む

pg_upgradeでつまずいた

環境

経緯

gitlab 9.0からデフォルトのPostgreSQLのバージョンが9.6になる(参考記事)とのことだった。
私の環境では、CentOSのrepoからyumでインストールした9.2が入っていたので、このタイミングで9.6をインストールすることにした。

続きを読む

A5:SQLでSQLパラメータをバインドするコードを生成するプラグインを作った

github.com

A5:SQL Mk-2 、お仕事で利用しています
DBからSQLを生成する機能は大変便利ですが、SQLのパラメータをバインドするコードは手動で生成する必要がありました

このプラグインを利用すればパラメータをバインドするコードを自動で生成できます

詳細は上記のgithubのページを御覧ください

このプラグインは流星墓場さん( http://alien8.sakura.ne.jp/ )のSetParameterジェネレータをプログラムでのバインド用に改変したものです。SetParameterジェネレータを制作されたaliens8さんに感謝致します