MS ACCESSなどで使っているMDBファイル形式のデータベース(JET)からPostgreSQLにテーブル定義とデータを移行するためのツールです。
JETの主キー、既定値、入力チェック、リレーションシップ、インデックスを中途半端にCREATE
TABLE文やCREATE INDEX文に移行します。
(作業内容) まず最初にテーブル定義を変換し、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文を実行することと同等です。

(作業内容)
(注意事項)
データ移行作業用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に戻る