goFMDataMigration(FMDataMigrationを簡単に実行するためのCLIツール)を公開しました

こんにちは。
株式会社フルーデンスの小巻です。

FileMakerの開発をする際に、商用環境と別に開発環境を準備するのが一般的だと思います。

また、初回バージョンのシステムをリリースした後には、開発者は、開発環境を修正し任意のタイミングで、商用環境にリリースします。

そのため、リリース時には、商用環境にあるデータを開発環境のCloneファイルにデータ移行(DataMigration)する必要があります。

データ移行(DataMigration)について


これまでは、おそらく開発者自身でデータ移行ツールを作成し、事前にリハーサルをし、リリース作業をする方が多いと思います。

もしくは、リフレッシュFM(RefreshFM) などを利用しているかもしれません。

しかし、今回のタイトルにもある通り、これからは FMDataMigration というCLIツールを使うケースが増えると思います。

FMDataMigrationについて

FMDataMigrationとは、FileMaker Developer Subscription (FDS) をサブスクリプションすると利用できるCLIツールです。

詳細は、以下のリンクを見るとよいと思います。

FileMaker Developer Subscription
https://store.filemaker.com/product/FDS

Introducing FileMaker 17’s FMDataMigration Command Line Tool
https://www.soliantconsulting.com/blog/fmdatamigration-command-line-tool

FileMaker Data Migration Tool Guide
https://fmhelp.filemaker.com/docs/edition/en/migration/index.html

FMDataMigrationで注意するとき

私もすべてのケースを確認できていませんが…

  • ファイルの分離に伴うテーブル移動時
  • グローバルフィールドの値

など、FMDataMigrationで生成されたファイルについては、十分な注意が必要だと思いますし、自前のデータ移行ツールは必要だと思います。

FMDataMigrationが不便に感じるとき

1つ、2つのファイルであれば問題ないですが、以下のようなケースだと、さすがに不便に感じます。

  • ファイルがいっぱいあるとき
  • ディレクトリがあるとき

こういうときに…

おそらく、FileMakerができる人は FMDataMigration を効率よく使うためのツールを、FilMakerで作るでしょう。

おそらく、シェルスクリプトがかける人は FMDataMigration を効率よく使うためのツールを、シェルスクリプトで作るでしょう。

私は、Goを勉強しているので、今回はGo言語で作成しました。

goFMDataMigrationについて

今回、作成した goFMDataMigration は、アカウント名とパスワードを引数として渡せば、うまいことやってくれるようなツールです。

ファイルが多い時や、ディレクトリがある時には、便利に使えると思います。

デモ動画を作成しましたので、見てもらえれば理解できると思います。

goFMDataMigrationのデモ

Cloneファイルのファイル名について

デモでは Inventory Clone.fmp12 というファイルでしたが、
Inventory クローン.fmp12 でも大丈夫です。

goFMDataMigrationを公開しました

Githubにあげましたので、みなさん使ってみてください。

https://github.com/frudens/gofmdatamigration

あとがき

Go言語は、最近始めたばかりなのでコードについては、ひどいと思います…
ちなみに、エミックさんが作成された fmcsadmin というcliツールもGo言語です!

引き続きGoを書いていきます!

当時勤めていた会社で FileMaker プラットフォームと出会い、インハウス開発者としてカスタムAppの開発を行う。2014年からフリーランスとして活動し、2016年に株式会社フルーデンスを設立する。最近は「URL から挿入」を使って、様々なサービスとAPI連携したり、Amazon DynamoDBやAWS Lambdaを使って開発をしています!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください