Postgresのテーブルをファイルでバックアップ

メモメモ

\a

\f ,(今回はCSVで書き出すからカンマを指定)

\t (\tを指定すると、カラム名を省略可能。)

\o /パス/ファイル名.csv

SELECT文(条件なども指定可能)

これでOK。

\q

で出ない限り、
「SQL」で「SELECT」した結果などが「\o」で指定した「/パス/ファイル名」で
何回も書き出される。

PostgresとMySQLを両方使う

PHPをインストールする場合のconfigure

PostgreSQLとMySQLを両方使う場合

> ./configure –with-pgsql –with-mysql –with-apxs2=/usr/local/apache2/bin/apxs –enable-versioning –enable-mbstring –enable-mbstr-enc-trans

その他

・DBなしの場合

> ./configure –with-apxs2=/usr/local/apache2/bin/apxs –enable-versioning –enable-mbstring –enable-mbstr-enc-trans

・PostgreSQLを使う場合

> ./configure –with-pgsql –with-apxs2=/usr/local/apache2/bin/apxs –enable-versioning –enable-mbstring –enable-mbstr-enc-trans

・MySQLを使う場合

> ./configure –with-mysql –with-apxs2=/usr/local/apache2/bin/apxs –enable-versioning –enable-mbstring –enable-mbstr-enc-trans

PostgresのDBデータをファイルでバックアップ

忘れないようにメモ

ファイルでバックアップ

/usr/local/pgsql/bin/pg_dump -h localhost -U postgres -d DB名 > ファイル名

外部ファイルへテーブルの値をエクスポート

COPY テーブル名 TO ‘/home/postgres/ファイル名’ USING DELIMITERS ‘,’ ;

カレントディレクトリにエクスポート

\COPY テーブル名 TO ‘ファイル名’ USING DELIMITERS ‘,’ ;

外部ファイルからテーブルに値をインポートする

COPY テーブル名 FROM ‘/home/postgres/ファイル名’ USING DELIMITERS ‘,’ ;

ちなみにCSVでエクスポートする場合にカラム名をヘッダーに表示する場合

COPY テーブル名 TO ‘/home/postgres/ファイル名’ HEADER CSV;

これで一行目にカラム名が挿入されてCSVでエクスポートされる。