アップデート!FileMaker data migration toolについて

2021年11月01日 04:00 PM

Claris FileMaker 19


FileMaker data migration toolとは?

 

FDS(FileMaker Developer Subscription)で提供されるツールの1つです。

FDS購入ページ(Clarisサイト)

 

このツールではコマンドで操作してカスタムAppのデータ移行ができます。

提供開始当時、使ってみたブログを3本立てて公開しています。

FileMaker data migration tool を使ってみた!
FileMaker data migration tool を使ってみた!(2)
FileMaker data migration tool を使ってみた!(3)

 

その後のアップデータで増えたオプション設定があるので、

今回のブログでは、その内容を確認してみたいと思います。

また、今回はWindowsで操作をしてみたいと思います。

※操作方法はほとんどMacと変わりません。

 

(参考)Claris ナレッジベース

 

**準備**

 

・データが入っているカスタムApp(ソースファイル)を用意します。

・クローンのカスタムAppを用意します。

※クローンファイルは、ファイルメニュー>名前を付けて保存…から「データなしのコピー」を選択することで作成することが可能です。

※クローンファイルは一度開いてしまうとクローンではなくなってしまうので注意してください。

・fm_data_migration_【バージョン番号】_win.zipをダウンロードし、解凍します。

※今回は解凍したフォルダをデスクトップに配置しました。

 

 

**ヘルプを参照してみる**

 

まずはコマンドプロンプトを立ち上げます。

 

まずディレクトリを、FileMaker data migration tool のディレクトリまで移動します。

※cdと入力した後に解凍したフォルダをドラッグすると簡単です。

ここで一度Enterを押すと下図のように変わります。

ここに”FMDataMigration /?”と入力し、Enterで実行します。

すると、下記のような説明が表示されます。

 

**増えているオプションを見てみる**

 

さて、以前の記事と比べて、増えたオプションを確認してみたいと思います。

下記の3つが増えています。

  • -version
  • -reevaluate
  • -rebuildindexes

 

 

**-versionについて**

 

こちらのオプションはデータ移行に関するオプションではなく、FileMaker data migration toolのバージョンを返すものです。

上記のように入力し実行すると、下図のように「19.2.2.234」と返ってきました。

ヘルプを表示した際に最初に表示されているバージョンと同じデータですね。

※こちらのオプションを使うと、データ移行は行われないため、もし他のオプションや設定(「-src_path」や、「-force」など)を入力していたとしても、それらは無視されバージョン情報のみが返ります。

 

 

**-reevaluateについて**

 

このオプションはFileMaker data migration tool 19.1.3以降のバージョンで使用できるオプションです。

先ほどのヘルプでは下記のように記載がされています。

reevalute all stored calculation fields

このオプションを付けると、計算結果を保存する計算フィールドが移行の際に再評価されるようです。

このオプションで影響がでる可能性のある計算フィールドとしては、

取得関数やRandom関数を用いた計算式を使用していて計算結果を保存する設定がされているフィールド

となります。

(V15まであったExternal関数も影響が出る可能性があります。)

 

さて、このオプションを使ってデータ移行をしてみたいと思います。

計算フィールドを含む簡単なファイル「TEST.fmp12」を用意しました。

クローンファイル「TESTcln.fmp12」も用意し、2つのファイルをデスクトップに配置しています。

さて、データ移行を行う際は下記のように入力するようヘルプに記載がされています。

ですので、下記のように入力して実行してみます。

※C:¥Users\<ユーザー名>\Desktop\FMDataMigrationTool_WINまではすでに表示がされている状態かと思いますので、その後ろに下記の内容を記載します。

FMDataMigration

-src_path C:\Users\<ユーザ名>\Desktop\TEST.fmp12

-clone_path C:\Users\<ユーザ名>\Desktop\TESTcln.fmp12

-reevaluate

-v

 

※ファイルパスを入力するときには、ファイルをコマンドプロンプトにドラッグするとパスが入力されるので、この方法を利用すると入力が楽になります。

※コマンドプロンプトで処理状況の詳細情報を表示させるためにもう一つのオプション -v も追加しています。

 

さて、実行してみると、今回は、-target_path を指定しなかったので、同じディレクトリに、TEST migrated.fmp12 (srcファイル名に”migrated”がつく)という名前のファイルが作成されました。

コマンドプロンプトに表示される処理内容の中に下記のような記載があります。

 

— Updated the following stored calculations — の部分で更新されたフィールドが確認できました。

再評価に失敗したデータがあった際にはFailed While~の部分で確認ができるようです。

※再評価の失敗についてさらに検証してみたところ、失敗の原因はGet ( プリンタ名 ) 関数でした。計算フィールドで使用することはあまりない関数ではあると思いますが、もし使用している場合はこのようにエラーが発生する可能性がありますのでご注意ください。

 

さて、移行データを確認してみます。

※2021/10/11 14:50 に作成し、その時の情報が計算フィールドに保存されたデータを2021/10/12 11:05に移行してみたところ、上記のようにデータが変わりました。

 

確かに再評価が実行されていることがわかります。

 

さて、ここで再評価時、取得関数にはどのようなデータが入るのか気になったので少し調べてみました。

 

Get(アクティブレコード番号)や、Get(ウインドウ名)、Get(レイアウト名)など、コンテキストに関わる情報は取得できず、空となりました。

 

Get ( ユーザ名 ) では”FMDataMigration”という値が取得され、Get ( アプリケーションバージョン ) では”FMDataMigration 19.2.2.234 (03-07-2021)”という値が取得されました。

この2つがFileMaker data migration toolで取得される特殊なデータのようです。

 

 

データ移行の際は、ソースと全く同じデータになるように移行するということが基本的な条件となると思うので、計算フィールドの再評価をするこのオプションはなかなか使う機会がないかもしれませんが、このようなオプションがあるということを知っていると、より色々な場面に対応できるようになるかと思います。

 

 

**- rebuildindexesについて**


このオプションはFileMaker data migration tool 19.1.3以降のバージョンで使用できるオプションです。

先ほどのヘルプでは下記のように記載がされています。

Rebuild all field indexes

このオプションを付けると、全てのフィールドの索引が再構築されるようです。

 

さて、こちらについても確認をしてみたいと思います。

日本郵便のHPからダウンロードできる郵便番号簿のCSVデータをFileMakerに変換したファイルをソースとして使用します(KEN_ALL.fmp12)。

郵便番号簿のCSVデータには項目名が含まれていなかったためフィールド名が「f1」~「f15」でフィールドが作成されたのですが、そのうちの「f1」~「f5」フィールドに索引の設定をしました。

 

そして、その状態でクローン (KEN_ALL_cln.fm12)を作成し、データ移行を実行しました。

FMDataMigration

-src_path C:\Users\<ユーザ名>\Desktop\ KEN_ALL.fmp12

-clone_path C:\Users\<ユーザ名>\Desktop\ KEN_ALL_cln.fm12

-rebuildindexes

-v

 

そうすると、下図のように– Rebuilt the following indexes –でf1~f5のフィールド索引が再構築されたことが処理に記載されています。

 

さらに、索引設定がないとどうなるかや、ソースとクローンで変わっている場合はどうなるかなどもさらに検証してみて、それらの処理の結果をまとめると下記のようになります。

※処理の結果の表を補足としてこの記事の最後に記載しています。

 

・クローンでは索引設定が「なし」で、ソースでの索引設定も「なし」だった場合を除き、クローンの索引設定に合わせて再構築されました。

※クローンの索引設定が「なし」でソースの索引設定も「なし」だった場合は、索引に関する処理は何もされませんでした。

 

ちなみにオプションが付いていない場合は、

・クローンの索引設定が「なし」でソースの索引設定も「なし」だった場合は、上記同様、処理は何もされませんでした。

・ソースとクローンで同じ索引設定だった場合は、ソースの索引がそのままコピーされ再構築はされません。異なる索引設定だった場合は、クローンの索引設定に合わせて再構築されました。

 

 

– rebuildindexesオプションについては、オプションを付けなければそのまま利用できる索引はソースからコピーして利用するところを、オプションを付けることで、強制的に再構築させるような動きになる、ということですね。(オプションがなくても、再構築が必要な場合には再構築されるようになっていました。)

 

索引が壊れてしまって、検索がうまくできなかったりリレーションが正しくなかったり、ということがまれに発生することもあります。索引に不安がある状態でデータ移行が必要になったら、このオプションを使用することで、データ移行と索引再構築とが同時にできますね。

 

 

まとめ

 

さて、今回はアップデータで増えているFileMaker data migration toolのオプションを確認してみました。これまでよりも色々なケースに対応してデータ移行ができるようになっているといえるのではないでしょうか。

FDS(FileMaker Developer Subscription) を購入している方は、ぜひ活用してみてください。

 

 

 

(補足)ソース、クローンの索引設定と処理内容の調査結果

※移行が完了したターゲットファイルのフィールドの索引設定オプションは、クローンファイルの設定をそのまま引き継ぎます。

※ターゲットに作成された索引は、処理内容がRebuiltであれば再構築されたもので、Copyingであればソースからコピーされたものとなります。