PostgreSQL 8.1から7.3へデータ移行
訳あってPostgreSQL 8.1のデータを7.3へ移行する必要が出た。
ただ、7.3はテスト機なので、適当にトライ&エラーで移行してみた。
8.1でpg_dump
-dオプションを付けて、INSERT文によるダンプ。
pg81$ pg_dump -U postgres -d hogeDb > hogeDb.sql
編集1 - コメントアウト
SET文でエラーが出たので、思い切ってコメントアウト。
影響は不明。
-- SET default_tablespace = ''; -- SET default_with_oids = false;
編集2 - シーケンスの最終値
シーケンスの最終値を設定するSQL文にエラーが出るので、書き換え。
-- SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('hogeTb', 'id'), 50, true); SELECT pg_catalog.setval ('hogeTb_id_seq', 50, true);
編集3 - regclassは削除
CREATE TABLE文にて、SERIAL型の列だけど、他と違って「DEFAULT nextval ...」ってSQL出力されるテーブルがあった。ここで、regclassって指定されてたけど、エラーが出るので削除。
-- id integer DEFAULT nextval(('public.hogeTb_id_seq'::text)::regclass) NOT NULL, id integer DEFAULT nextval('public.hogeTb_id_seq'::text) NOT NULL,
編集4 - シーケンス作成のBY
CREATE SEQUENCE文で、BYなんて知らないとエラーが出たので、CREATE SEQUENCE文を書き換え。
-- CREATE SEQUENCE hogeTb_id_seq -- INCREMENT BY 1 -- NO MAXVALUE -- NO MINVALUE -- CACHE 1; CREATE SEQUENCE hogeTb_id_seq START 1 INCREMENT 1 MAXVALUE 9223372036854775807 MINVALUE 1 CACHE 1;
7.3にインポート
PostgreSQL 7.3 のマシンで、インポート。
エラーがなければ、成功かも。
pg73$ createdb -U postgres hogeDb
pg73$ psql -U postgres hogeDb < hogeDb.sql >res.txt 2>err.txt
« [WSH] 自IPアドレスの取得 | トップページ | VMware PlayerのDHCPサーバの設定 »
「Linux」カテゴリの記事
- [Linux] ログイン画面のOS名表示など(2013.08.12)
- CentOSからWin7の共有フォルダへアクセス(2011.11.27)
- namazuのインストール手順(2011.09.02)
- mknmzで、エラー 'sh: line 1: no: command not found'(2011.08.30)
- PostgreSQL 8.1から7.3へデータ移行(2011.08.24)