ACCESS -> PostgreSQL移行ツール


何をするものか

MS ACCESSなどで使っているMDBファイル形式のデータベース(JET)からPostgreSQLにテーブル定義とデータを移行するためのツールです。
JETの主キー、既定値、入力チェック、リレーションシップ、インデックスを中途半端にCREATE TABLE文やCREATE INDEX文に移行します。

 

使い方

0. 前準備

 

1. テーブル定義の変換

(作業内容) まず最初にテーブル定義を変換し、postgres側にテーブルを作成します。

変換したいMDBファイル名を指定して、テーブル定義取得ボタンを押すと、t_mapping_table、t_mapping_field、t_mapping_index、t_mapping_relationの4つのテーブルに、リンクテーブルや隠しテーブル、システムテーブルを除いたMDB内のテーブルとリレーションシップの定義を取得します。

続いて、postgres用定義生成ボタンを押すと、t_mapping_field、t_mapping_index、t_mapping_relationテーブルのpgDefinition列にpostgres用の定義文の部品をセットします。

次に、テーブル定義ファイル名を指定して、テーブル定義ファイル出力ボタンを押すと、t_mapping_table、t_mapping_field、t_mapping_index、t_mapping_relationの4つのテーブルの情報から生成したCREATE TABLE文、CREATE INDEX文をテーブル定義ファイルに出力します。

出力したテーブル定義ファイルで問題なければ、移行先postgresqlデータベースのODBC接続文字列を指定して、テーブル作成ボタンを押します。テーブル定義ファイルのSQL文をODBC経由で実行するだけですので、psqlやpgAdminでテーブル定義SQL文を実行することと同等です。

 

2. データ移行用MDBの作成

(作業内容)


(注意事項)

データ移行作業用MDBファイルを作成する際には、使用するODBCデータソース(DSN)の「CharとしてBoolsを扱う」オプションをOFFにしてください。このオプションが既定値のONになっていると、PostgreSQLリンクテーブルのBoolean型列はACCESSのYes/No型ではなく1文字のテキスト型の列になります。これは選択クエリには都合がよい状態ですが、逆にデータ移行で使う追加クエリには都合の悪い状態です。

データ移行作業用MDBの作成が済めば、「CharとしてBoolsを扱う」オプションをONに戻しても問題ありません。リンクテーブルを定義する際にPostgreSQLのBoolean型列がACCESSのYes/No型の列として定義されれば、移行クエリの実行時にODBCデータソース(DSN)の「CharとしてBoolsを扱う」オプションがONになっていても追加クエリの実行に問題はありません。


移行元MDBファイル名と移行先postgresqlデータベースのODBC接続文字列、および変換作業用MDBファイル名を指定して、データ移行クエリ作成ボタンを押します。

後は、変換MDBのデータ追加クエリを順次、手動で実行します。


TOPに戻る