はじめに
hkob の雑記録の第206回目は、バンド (Bands)・コンサート (Concerts) のデータベースを追加します。
ER図
前回、Devices の時に ER 図を紹介するのを忘れました。今回追加する 3 つのデータベースを加えた ER 図を示しておきます。Devices の Artists は多対多だったので、複数形に変更しています。

とりあえず、ここまで Map のリレーションを記述していますが、これはオートメーションのためのリレーションなので、本質的なものではありません。今後はこのリレーションは省略して記載します。
Bands のエクスポートとインポート
Bands の独立した属性は Name だけです。さっとエクスポート & インポートしてしまいます。

無事にインポートが終わりました。

このバンドから People へのリレーションとして BandMembers というリレーションがあるはずなのですが、こちらは Rails からインポートされていませんでした。以下のようにリレーションだけ作っておいて、後で Rails からデータを移行しておきます。

Concerts のエクスポート
Concerts のプロパティは以下のように整理しました。今回、Year は Devices と同様に Performance date から自動生成するので、エクスポートしないことにしました。

前回と同様に CSV に書き出し後、リレーションの URL 削除と日付の ISO8601 変換をしてしまいます。
sed 's/ (https:\/\/www.notion.so[^)]*)//g' Concerts\ 5c465ac0e41145908a7430499c3126bf.csv | sed 's/\([0-9][0-9]*\)\/\([0-9][0-9]*\)\/\([0-9][0-9]*\)/\1-\2-\3/g' > Concerts.csv
変換結果は以下のようになります。
Name,Tags,Performance date,Bands,Comments 渋谷ライブイン ファーストライブ,ライブ,1987-09-07,, "「OVERHEAT. NIGHT」, 「GET SMILE」",ライブ,1987-12-11 → 1988-03-11,M's BAND, 「GET SMILE」ツアー,コンサートツアー,1988-03-28 → 1988-04-14,, "「ザ・ミーハー」, その他",ライブ,1988-05-23 → 1988-08-12,,
Concerts の作成 & インポート
森高千里DBの下に作成したいので、また Cmd-Opt-9 で新規ページを作成します。この新規ページを開き、インポートを実施しました。ISO8601形式の日付に変換できていれば、日付範囲もインポートできるように見えます。

インポートを実行しましたが、日付範囲は正しく入らないようです。一度全部ページを消して、インポートし直してみます。

→ を / に変換してみましたが、これでもダメなようです。
sed 's/ (https:\/\/www.notion.so[^)]*)//g' Concerts\ 5c465ac0e41145908a7430499c3126bf.csv | sed 's/\([0-9][0-9]*\)\/\([0-9][0-9]*\)\/\([0-9][0-9]*\)/\1-\2-\3/g' | sed 's/ → /\//g' > Concerts.csv
対応するのは大変そうなので、開始日と終了日を分けてみました。
Name,Tags,Performance date,end date,Bands,Comments 渋谷ライブイン ファーストライブ,ライブ,1987-09-07,1987-09-07,, "「OVERHEAT. NIGHT」, 「GET SMILE」",ライブ,1987-12-11,1988-03-11,M's BAND, 「GET SMILE」ツアー,コンサートツアー,1988-03-28,1988-04-14,, "「ザ・ミーハー」, その他",ライブ,1988-05-23,1988-08-12,,
Performance date とend date が別のプロパティになりました。

二つの日付が存在するので、DateRange で合成します。

数式で範囲に変換できたので、この結果を Performance date にコピーします。

無事コピーできたので、数式と end date プロパティは消してしまいます。
リレーションの作成
Bands を BandsStr に変更し、Bands リレーションを追加します。

Year は Years へのリレーションになります。こちらも1対多の接続になります。

また、Map も Devices と同様に 1 対多で双方向リレーションなしで設定します。

Map はこれまでと同様に全てのページに all を設定します。

今後、新しい Concerts を登録したときに all に接続することを忘れそうなので、Years と同様にページ追加時に all を設定するようにしてしまいます。

ここまでできれば、Map を経由して Release date の年に対応する Years 内のページを選択して設定するだけです。

設定した値は以下のような数式になります。

また、Bands の対応項目は少ないので、手動で設定してしまいました。

おわりに
これで Concerts についても取り込みが終わりました。次は Prefectures, Hall あたりのインポートになるかと思います。