Q100617: Flix 6 の MySQL クエリの例

フォローする


まとめ

この記事はFlix管理者向けです。ここでは、MySQL に直接クエリを実行してFlixに関する情報を収集する方法の例をいくつか示します。


詳しくは

Flixすべての番組、シーケンス、パネルに関する情報を MySQL データベースに保存しています。上級Flix管理者は、この情報を MySQL から直接取得できます。これは、特定の情報の抽出やFlixトラブルシューティングに役立ちます。

組み込みのmysqlコマンドライン ツール、または MySQL Workbench や Sequel Pro などのサードパーティ ツールを使用できます。

以下の例では、 ?を置き換える必要があります。必要な情報が記載されています。

名前を使用してショー ID を取得します

この例では、番組の名前を使用してプロジェクトの番組 ID を取得できます。

mysql> SELECT
    `shows`.`show_id`,
    `shows`.`title`
FROM
    `shows`
WHERE
    `shows`.`title` LIKE '% ? %';
+---------+-----------------+
| show_id |           title |
+---------+-----------------+
|       2 | the little bird |
+---------+-----------------+

名前からシーケンス ID を取得する

この例では、シーケンス名を使用してシーケンス ID を取得できます。

mysql> SELECT
    `sequence`.`id`,
    `sequence`.`description`
FROM
    `sequence`
WHERE
    `sequence`.`description` LIKE '% ? %';
+----+-------------+
| id | description |
+----+-------------+
|  2 |     a place |
+----+-------------+

パネル アセットのファイル パスを見つける

この例では、特定の資産のストレージ デバイス上のファイル パスを見つけることができます。

mysql> SELECT
    `vPanel_asset_ref`.`panel_id` AS PanelID,
    `vPanel_asset_ref`.`vPanel_id` AS PanelRevision,
    `media_object`.`ref` AS Ref,
    CONCAT('<asset_dir>/', `media_object`.`id`, '_', `media_object`.`filename`) AS FilePath
FROM
    `media_object`
LEFT JOIN
    `asset` ON `asset`.`asset_id` = `media_object`.`asset_id`
LEFT JOIN
    `vPanel_asset_ref` ON `vPanel_asset_ref`.`asset_id` = `asset`.`asset_id`
WHERE
    `vPanel_asset_ref`.`show_id` = ? and
    `vPanel_asset_ref`.`sequence_id` = ? and
    `vPanel_asset_ref`.`panel_id` = ? ;
+---------+---------------+-----------+------------------------------+
| PanelID | PanelRevision |       Ref |                     FilePath |
+---------+---------------+-----------+------------------------------+
|       1 |             1 |   artwork | <asset_dir>/3_test.0491.jpeg |
|       1 |             1 | thumbnail | <asset_dir>/16_079043250.png |
|       1 |             1 |    scaled | <asset_dir>/20_019628328.png |
|       1 |             1 |   fullres | <asset_dir>/25_552125904.png |
+---------+---------------+-----------+------------------------------+

ユーザーの一覧を表示(システムユーザーを除く)

この例では、 Flixを使用できるユーザーのリストを取得できます。 LDAP または OAuth 認証を使用している場合、 Flixにアクセスできるユーザーのリストが完全ではない可能性があります。この場合、以前にFlixにサインインしたユーザーのリストが取得されます。

mysql> SELECT
    `user`.`id`,
    `user`.`username`,
    `user`.`is_admin`,
    `user`.`type`,
    `user`.`email`,
    `user`.`deleted`
FROM
    `user`
WHERE
    `user`.`is_system` = 0;
+----+----------+----------+------+------------------------+---------+
| id | username | is_admin | type |                  email | deleted |
+----+----------+----------+------+------------------------+---------+
|  1 |    admin |        1 | flix | flix -admin@foundry.com |       0 |
+----+----------+----------+------+------------------------+---------+

特定のファイル名を使用するパネル ID を検索する

この例では、特定のファイルのパネル ID を見つけることができます。

mysql> SELECT
    `shows`.`title` AS ShowTitle,
    `sequence`.`description` AS SequenceTitle,
    `panel`.`panel_id` AS PanelID
FROM
    `media_object`
LEFT JOIN
    `asset` ON `asset`.`asset_id` = `media_object`.`asset_id`
LEFT JOIN
    `shows` ON `shows`.`show_id` = `asset`.`show_id`
LEFT JOIN
    `vPanel_asset_ref` ON `vPanel_asset_ref`.`asset_id` = `asset`.`asset_id`
LEFT JOIN
    `vPanel` ON `vPanel`.`show_id` = `vPanel_asset_ref`.`show_id` AND
    `vPanel`.`sequence_id` = `vPanel_asset_ref`.`sequence_id` AND
    `vPanel`.`panel_id` = `vPanel_asset_ref`.`panel_id`
LEFT JOIN
    `sequence` ON `sequence`.`id` = `vPanel`.`sequence_id` AND
    `sequence`.`id` = `vPanel`.`sequence_id`
LEFT JOIN
    `panel` ON `panel`.`panel_id` = `vPanel`.`panel_id`
WHERE
    `media_object`.`id` = SUBSTRING_INDEX(' ? ', '_', 1) AND
    `media_object`.`filename` = SUBSTRING_INDEX(' ? ', '_', -1)
GROUP BY
    ShowTitle, SequenceTitle, PanelID;
+------------+---------------+---------+
|  ShowTitle | SequenceTitle | PanelID |
+------------+---------------+---------+
|      show1 |     seq_qwery |       1 |
| other show |          asdf |       1 |
+------------+---------------+---------+

人間が判読できるサーバーリストを取得する

この例では、すべてのFlixサーバーのリストを取得できます。これは、 Flixクライアントの [管理コンソール] -> [サーバー] からも利用できます。

mysql> SELECT
    HEX(`server`.`server_id`) AS serverIdent,
    INET_NTOA(`server`.`host_ip`) AS IP,
    `server`.`port`,
    `server`.`rpc_port`,
    `server`.`running`,
    `server`.`start_date`,
    `server`.`hostname`
FROM
    `server`;
+----------------------------------+--------------+------+----------+---------+---------------------+-----------------+
|                      serverIdent |           IP | port | rpc_port | running |          start_date |        hostname |
+----------------------------------+--------------+------+----------+---------+---------------------+-----------------+
| F22A1072B6754BCDB78477EDCD81F8FD | 192.168.1.67 | 8080 |     9876 |       1 | 2021-02-01 13:18:29 | flx.foundry.com |
+----------------------------------+--------------+------+----------+---------+---------------------+-----------------+

パネル ID のFlix 5 メタデータを検索する

この例では、 Flix 5 から移行されたパネル用にFlix 6 が保持しているデータを確認できます。

mysql> SELECT
    `vpanel`.`panel_id`,
    `vpanel`.`data`
FROM
    `vpanel`
WHERE
    `show_id` = ? AND
    `sequence_id` = ? AND
    `vpanel`.`panel_id` = ? ;
+----------+----------------------------------------------------------+
| panel_id |                                                     data |
+----------+----------------------------------------------------------+
|        1 |    {"flix5_panel_id": "31", "flix5_panel_revision": "1"} |
|        1 |    {"flix5_panel_id": "31", "flix5_panel_revision": "2"} |
|        1 |    {"flix5_panel_id": "31", "flix5_panel_revision": "3"} |
+----------+----------------------------------------------------------+

Flix 5 メタデータからパネル リビジョンを見つける

この検索は、 Flix 5 パネルのFlix 6 対応物を見つけたいときに役立ちます。

mysql> SELECT
    `vPanel`.`show_id`,
    `vPanel`.`sequence_id`,
    `vPanel`.`panel_id`,
    `vPanel`.`panel_revision`
FROM
    `vPanel`
JOIN
    `sequence` ON `sequence`.`id` = `vPanel`.`sequence_id`
WHERE
    `vPanel`.`data`->"$.flix5_panel_id" = " ? " AND    
`vPanel`.`data`->"$.flix5_panel_revision" = " ? " AND
`sequence`.`tracking_code` = " ? ";
+---------+-------------+----------+----------------+
| show_id | sequence_id | panel_id | panel_revision |
+---------+-------------+----------+----------------+
|        7|          97 |      236 |              1 |
+---------+-------------+----------+----------------+

参考文献

これが探していたものではなく、MySQL のインストール方法を知りたい場合は、以下の記事を参照してください。

Q100551: Red Hat CentOS 6/7 への MySQL 5.7 のインストール

代わりに、 Flixデータベース データをバックアップ/復元するためのベスト プラクティスを見つけようとしていた場合は、以下の 2 つの記事を確認してください。

Q100615: Flixのバックアップ

Q100567: Flix 6 データベースのバックアップを復元する方法


show_id と sequence_id を取得する方法については、次の記事を参照してください。

Q100619: Flixクライアントから show_id および/または sequence_id を取得する方法


最後に、最も効率的な方法でFlixを設定する方法に関する推奨事項については、次の記事を参照してください。

Q100593: 最適なFlix 6 サーバーのセットアップ

    私たちはそれを聞いて申し訳ございません

    理由をお聞かせください