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 を簡単に使ってみましたが、今回は、オプションの機能について、少し掘り下げてみたいと思います。
ちなみにこのあと出てくる Src、 Clone、 migrated 用語は、それぞれ下記の意味で使用しています。
- 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)
-ignorevaluelists (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) //カスタム値の値一覧を、ソースの代わりに、クローンの値一覧を使用する。
値一覧についてのオプションになります。
実際の開発現場を考えてみましょう。
- バックアップ
- 開発
- テスト
- データ移行
- 本番運用
開発時に一連の流れがあるとしますが、開発時に「教科」という値一覧を、追加したとします。
そうすると、データ移行時には、開発ファイルから作成したクローンの値一覧を優先しないといけません。
その際に、指定するオプションだと想像できます。
下記のように、データ移行後(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 の残りのオプションも、検証してみたいと思います