メモ。普通にpg_dumpしてpsqlでリストアするやつ。

(移行元) Webサービス等の設定ファイルからDBログイン情報をメモする

たいていDBに接続するための情報はサービスの設定ファイルに書いてあるので、メモしておく。

DBのダンプ

メモした値をシェル変数に入れてコマンドを打つ。

DB_HOST=db
DB_PORT=5432
DB_NAME=aaa
DB_USER=aaa
DB_PASS=xxxxxxxx
docker-compose exec -e PASSWORD=$DB_PASS $DB_HOST psql -U $DB_USER $DB_NAME -c "\l $DB_NAME"
docker-compose exec -e PASSWORD=$DB_PASS $DB_HOST pg_dump --no-owner --encoding=UTF-8 -U $DB_USER $DB_NAME >db.sql

encodingとcollateをメモしておくこと。

  Name  | Owner  | Encoding | Collate | Ctype | Access privileges
--------+--------+----------+---------+-------+-------------------
 aaa | aaa | UTF8     | C       | C     |

PC間のデータコピー

(移行元PCで)sudo tar cpzf aaa.tgz aaa/ (移行先PCで)sudo rsync -ace ssh foo:/path/aaa.tgz . (移行先PCで)sudo tar xvzf aaa.tgz

(移行先)DBの作成とデータの投入

DB名、DBユーザ名、DBユーザのパスワードを決めておく。

export NEWLOCALE=C
export NEWDB=aaa
export NEWUSER=aaa
export NEWPASSWORD=xxxxxxxx

sudo su - postgres -c "createuser -P $NEWUSER"
# (パスワードを尋ねられる)

sudo su - postgres -c "createdb --template=template0 --encoding=UTF-8 --locale=$NEWLOCALE --owner=$NEWUSER $NEWDB"

psql -U $NEWUSER -d $NEWDB < db.sql
# (パスワードを尋ねられる)
⌚ガジェット
!gadgets

    ガジェット関連の記事を収集します

    • 0 users online
    • 1 user / day
    • 1 user / week
    • 1 user / month
    • 2 users / 6 months
    • 4 subscribers
    • 26 Posts
    • 19 Comments
    • Modlog