最近思い出したかのように Enju Leaf のイメージ更新してマイナーヴァージョンもちゃんと指定できるようにしたり DB のインデックスを永続化したりできるようにしたし PostgreSQL も 9.6 から 12 に上げて運用できるようにしてみたりした cc: @boronology
@orumin どもどもー。先日Bundle周りのファイルを直してたらしいのでちょうどいいタイミングだった
@boronology ついでに Alpine のベースイメージも更新してます。
@orumin 党首ー。これDBのマイグレーション作業いる?
@orumin docker-composeそのままだとDBが動かないためenjuも死ぬ。postgresを12-alpineから9.6-alpineに戻すと動くので犯人はDBっぽいのだけどわたしDBわからんマン
@boronology PostgreSQL 9.6 と 12 は直接ファイルに互換性ないからいちど pg_dumpall で全部テキストにダンプしたあと,postgres ディレクトリ空にしたあとで psql -f コマンドでダンプ喰わせる必要がある。どっかに書くべきでしたね。それと rake db:migrate もしたほがいいかな
@orumin DBさえ動いてしまえばdbmigrateはupdate.shに含まれてるから問題なく終わるんじゃないかなと。
稼働中にdocker execしてダンプ吐いておいたうえで、docker run /*ダンプ吐いた先のvolumeのbindとか*/ postgres:12-alpine psql -f なんとかすればいい感じ?
@boronology
# 9.6
docker-compose exec -u postgres db bash "pgdump_all" > backup_all.sql
docker-compose down
sudo mv -a postgres postgres.bak
mkdir postgres
sudo chown 70:0 postgres
# 12
docker-compose up -d db
docker-compose exec -u postgres db bash "psql -f -" < backup_all.sql
docker-compose run --rm web bundle exec rake db:migrate
docker-compose up -d
とかでイケると思う。(いま何も見ずに書いたから細かいコマンドの名前や挙動は確認してからやって
@boronology mv に -a は要らないなこれ(cp を使ってバックアップするときには要る
@orumin ありがとうございます酒のんでないときにやります
docker-compose exec -u postgres db bash "pgdump_all" > backup_all.sql
じゃなくて
docker-compose exec -u postgres sh -c "pg_dumpall" > backup_all.sql
だったわ
@boronology psql -f の行も bash "psql -f -" じゃなくて sh -c "psql -f -" ですねたぶん
@orumin どのみち心配なんで中入ってやります
@orumin すごい(そらで書けるのもそうだが全部書けるmastodonの文字数制限のゆるさすごい)