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

2018年06月12日 11:35 AM

FileMaker 17


 

FileMaker v17 が発売されましたが、同時に FDS(FileMaker Developer Subscription) では、FileMaker data migration tool というツールが提供されました。

前回(FileMaker data migration tool を使ってみた!) は、 この FileMaker data migration tool を簡単に使ってみましたが、今回は、オプションの機能について、少し掘り下げてみたいと思います。

ちなみにこのあと出てくる SrcClonemigrated 用語は、それぞれ下記の意味で使用しています。

  • Src(データ移行元)
  • Clone(クローンファイル、データなしのコピー)
  • migrated(データ移行後)

 

■□ FileMaker data migration toolのオプション □■


 

FileMaker data migration tool とは、簡単に言うとデータ移行ツールです。
その際に、オプションを指定することで、実現できることがあります。

 

オプション

-target_path <target file path> (default is source path with " migrated" added)
-force (overwrite existing target file)
-ignore_valuelists (use custom value lists from clone instead of source)
-ignore_accounts (use accounts and decryption key from clone instead of source)
-ignore_fonts (assume no font mapping required for field contents)
-v (verbose mode)
-q (quiet mode)  

 

今回は、上の3つの

 

-targetpath (default is source path with ” migrated” added)
-force (overwrite existing target file)
-ignore
valuelists (use custom value lists from clone instead of source)

 

について確認してみたいと思います。

 

 

■□ -target_path □■


 

-target_path <target file path> (default is source path with " migrated" added)

//ターゲットパスは、データ移行後のファイルを保存するディレクトリの指定です。
//指定しない場合は、ソースファイルと同じところに保存され、" migrated"という文字がファイル名に加えられます。

「1Src」「2Clone」「3Target」というフォルダを用意し、
「1Src」に、ソースファイル(データ移行元)を保存、
「2Clone」に、クローンファイル(データなしのコピー)を用意しました。

 

 

実際にコードを実行してみます。

./FMDataMigration  
-src_path /Users/<ユーザ名>/Desktop/MigrationTool/1Src/KEN_ALL.fmp12 
-clone_path /Users/<ユーザ名>/Desktop/MigrationTool/2Clone/KEN_ALL.fmp12 
-target_path /Users/<ユーザ名>/Desktop/MigrationTool/3Target/KEN_ALL.fmp12

 

ターゲットパスまで指定すると、指定したディレクトリに指定したファイル名で保存されました。

 

 

■□ -force □■


-force (overwrite existing target file)
//ターゲットファイルを、強制的に上書きします。

このオプションを指定して、コードを実行してみます。
「3Target」フォルダには、さきほど作成した KEN_ALL.fmp12 ファイルがありますので、上書きされるはずです。


./FMDataMigration  
-src_path /Users/<ユーザ名>/Desktop/MigrationTool/1Src/KEN_ALL.fmp12 
-clone_path /Users/<ユーザ名>/Desktop/MigrationTool/2Clone/KEN_ALL.fmp12 
-target_path /Users/<ユーザ名>/Desktop/MigrationTool/3Target/KEN_ALL.fmp12 
-force 

 

 

変更日が更新されました。確かに上書きされるようです。

このオプションを使用しなかった場合、下記のようなエラーが出ました。
データ移行後のファイルが作成できなかったようです。

 

The target file couldn’t be created because “(20406): File already exists.”
Target: /Users/<ユーザ名>/Desktop/MigrationTool/3Target/KEN_ALL.fmp12

 

 

 

■□ -ignore_valuelists □■


-ignore_valuelists (use custom value lists from clone instead of source)
//カスタム値の値一覧を、ソースの代わりに、クローンの値一覧を使用する。


値一覧についてのオプションになります。
実際の開発現場を考えてみましょう。

  1. バックアップ
  2. 開発
  3. テスト
  4. データ移行
  5. 本番運用

開発時に一連の流れがあるとしますが、開発時に「教科」という値一覧を、追加したとします。
そうすると、データ移行時には、開発ファイルから作成したクローンの値一覧を優先しないといけません。
その際に、指定するオプションだと想像できます。

下記のように、データ移行後(migrated)はならないといけないわけです。

 

値一覧 Src Clone migrated
曜日 月、火、水 月、火、水、木、金 月、火、水、木、金
教科 算数、国語、理科 算数、国語、理科

 

実際にやってみました。

./FMDataMigration
-src_path /Users/<ユーザ名>/Desktop/MigrationTool/1Src/KEN_ALL.fmp12
-clone_path /Users/<ユーザ名>/Desktop/MigrationTool/2Clone/KEN_ALL.fmp12
-target_path /Users/<ユーザ名>/Desktop/MigrationTool/3Target/KEN_ALL.fmp12
-ignore_valuelists

オプションを指定した場合には、確かに、クローンの値一覧が使用されています。

 

 

 

では、オプションを指定しなかった場合はどうなるのでしょうか?

 

オプションを指定しないと、ソースになくて、クローンにある値一覧は追加されますが、ソースと同じ値一覧は、ソースのカスタム値で置き換わっています。

 

 

 

では、なにを持って 同じ とするのか確認するために、こんどは、
クローンの「曜日」値一覧を、「教科1」という名前に変更し、カスタム値も変更してみます。

 

Src → Clone Src Clone migrated
曜日 → 教科1 月、火、水 社会 社会
なし → 教科2 算数、国語、理科 算数、国語、理科

 

そうするとどうでしょうか?
オプションを指定しても、指定していなくても、下記のようになりました。

 

おそらく、値一覧もFileMaker内でIDで管理していると思われるので、その値一覧名が変更されていれば、
クローンを優先するようになっているのではないでしょうか。

 

■□ まとめ □■


FileMaker data migration tool のオプションは、正しい動きを理解すると、とても有益なもののように感じます。

次回、この FileMaker data migration tool の残りのオプションも、検証してみたいと思います