エクスプレスエントリーの一括登録について

2018年3月23日 at 19:07

名簿作成にエクスプレスの利用を検討しております。
登録人数も多く一括登録の手段を用意したいと考え以下を試行しました。

1. エクスプレスエンティティ「member」を作成
2. 属性タイプ「テキスト」で「member_last_name」「member_first_name」を作成
3. エクスプレスエントリー2件を作成
4. Migration Toolでエクスプレスエントリーをエクスポート
http://github.com/concrete5/addon_migration_tool
5. エクスプレスエントリーを削除
6. Migration Toolで4をインポート

エントリーは追加(復元)されフロント側の検索機能も動作しているようですが
管理画面より削除を実行したところ以下エラーを生じました。


Doctrine \ DBAL \ Exception \ ForeignKeyConstraintViolationException
An exception occurred while executing 'DELETE FROM ExpressEntityEntries WHERE exEntryID = ?' with params [5]: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`データベース名`.`MigrationPublisherLogExpressEntries`, CONSTRAINT `FK_47DB73B06DCB6296` FOREIGN KEY (`exEntryID`) REFERENCES `ExpressEntityEntries` (`exEntryID`))


エントリー閲覧画面では「member_last_name」「member_first_name」は空欄になりましたが
「登録日」「カスタム表示順」は残ったままです。
インポートしたxmlファイルは以下の通りです。


<?xml version="1.0" encoding="UTF-8"?>
<concrete5-cif version="1.0">
<expressentries>
<entry id="8cb6790ac3e9" label="松尾" entity="member" display-order="1">
<attributes>
<attributekey handle="member_last_name">
<value><![CDATA[松尾]]></value>
</attributekey>
<attributekey handle="member_first_name">
<value><![CDATA[芭蕉]]></value>
</attributekey>
</attributes>
</entry>
<entry id="193ded757607" label="与謝" entity="member" display-order="2">
<attributes>
<attributekey handle="member_last_name">
<value><![CDATA[与謝]]></value>
</attributekey>
<attributekey handle="member_first_name">
<value><![CDATA[蕪村]]></value>
</attributekey>
</attributes>
</entry>
</expressentries>
</concrete5-cif>


実際のインポートに際してはentryのid部分は空で良いのかなど他にも気になる部分はございますが
このMigration Toolでエントリーを一括登録して利用中という方がおられましたら
ファイル内容や手順の不備などアドバイスいただけますと助かります。

またエクスプレスエントリー一括登録のより良い方法がございましたら
ご教示いただきたくお願い申し上げます。


# concrete5 バージョン
8.3.2

# PHP バージョン
7.1.4

# サーバー
エックスサーバー

# クライアント
macOS 10.12 + Firefox 59

タグ:

Re: エクスプレスエントリーの一括登録について

2018年3月26日 at 17:42
お世話になります。

完全な解決にならないかもですが、
どなたも返信されていないので、
少しでもお役に立てればという程度で共有します。

このサイトは concrete5 8.3.2 を新規インストールされたものでしょうか?
それとも、8.2.1 からアップグレードしたものでしょうか?

8.2.1 からアップグレードされたものであれば、アップグレードスクリプトに不具合が原因かもしれません。

50%ぐらいの確証しか無いのですが、
エラーメッセージに見覚えがあるかもです。

アップグレードが問題であれば、
次期バージョンの 8.4.0 で修正が取り込まれているので、それをお待ちになるか GitHub 上の最新版をビルドしたテスト環境で試していただくと良いかもです。

すいませんがよろしくおねがいします。
 

Re: エクスプレスエントリーの一括登録について

2018年3月26日 at 19:16
Ueno様

早速8.3.2で新規インストールし試してみましたが手元の環境では同じ結果になるようです。
PHP7.2.1環境下でエクスプレス詳細ブロックを設置すると読込中のまま止まる事象を確認したため
PHP7.0.18に切り替えてのインポートも試してみましたが状況は変わらず…これは見当違いだったようです。

concrete5またはMigration Toolが更新されましたら再度挑戦してみます。
ご回答いただきましてありがとうございました。