移行に関する問題 – 外部キー制約を追加できない

私はWordPress 4.9.5のCiviCRM 4.7.17で複数の問題を抱えています。私は公式の SysAdminガイドを参照してください。これまで私が一番近かったのは、

  • WordPressのインストールをきれいにする
  • WordPressの移行。
  • すべてのCiviCRMプラグインファイル、設定、およびCivi SQLテーブルを削除しました。
  • インストールされたCiviCRM(元のサイトと同じバージョン)が、別のSQLデータベースを作成しました。これは移行時に問題を引き起こす可能性がありますか?

phpmyadminを使用して元のciviデータベースをインポートしようとしましたが、次のように表示されます:

  CREATE TABLE `civicrm_acl` (
  `id` int(10) UNSIGNED NOT NULL COMMENT 'Unique table ID',
  `name` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'ACL Name.',
  `deny` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Is this ACL entry Allow  (0) or Deny (1) ?',
  `entity_table` varchar(64) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Table of the object possessing this ACL entry (Contact, Group, or ACL Group)',
  `entity_id` int(10) UNSIGNED DEFAULT NULL COMMENT 'ID of the object possessing this ACL',
  `operation` varchar(8) COLLATE utf8_unicode_ci NOT NULL COMMENT 'What operation does this ACL entry control?',
  `object_table` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'The table of the object controlled by this ACL entry',
  `object_id` int(10) UNSIGNED DEFAULT NULL COMMENT 'The ID of the object controlled by this ACL entry',
  `acl_table` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'If this is a grant/revoke entry, what table are we granting?',
  `acl_id` i[...]
MySQL said: Documentation

#1215 - Cannot add foreign key constraint

同じようなエラーでさまざまな投稿を見た後、私はインポート作業を行うことはできません。何がありますか?

データベース自体が私の限られた理解の範囲を超えていて、「最初から始める」ことは有用だと思うが、すべてのデータを失うことは受け入れられないと思う。
(私が抱いてきた1つの問題は、他のことが間違っていたことを認識しています:連絡先が統合されていないイベントページでアカウントを作成するとき
– DBエラー:既に存在する

SysAdminガイドに記載されている方法の他に、Civiで作成したすべてのデータをクリーンなCiviインストールにインポートすることは可能ですか?

すなわち、連絡先(私はこれをCivi経由でエクスポートすることができます)、履歴、カスタムプロファイル、カスタムフィールド、イベントなどをテストサイトに移動します。

ベストアンサー

エラーメッセージが切り詰められているように見えますが、これはトラブルシューティングするのが少し難しいので、このメッセージの切り捨てられていないバージョンを生成する方法を見つけることができれば、解決策はより明確になるはずです。

つまり、私はCiviCRMデータベースのダンプを見ています。作成される最初の2つのテーブルは、
civicrm_aclcivicrm_acl_cache
です。あなたのエラーは civicrm_acl を参照しますが、
civicrm_acl
には外部キー制約が定義されていないので、質問の行にこのエラーが表示されることはありません。

しかし、 civicrm_acl_cache には、 civicrm_acl
に外部キー制約があります。だから、私は次のどれかが真であると仮定します:

  • あなたのPHPMyAdminユーザは、 civicrm_acl
    を作成する権限、またはおそらくデータをそこに挿入する権限を持っていません。
  • 読み込んでいるデータベースダンプに civicrm_acl のデータがありません。

以下を確認してください:

  • インポートした後に civicrm_acl
    は存在しますか?そうでない場合は、パーミッションをチェックしてください。
  • civicrm_acl
    は存在しますが、データは含まれていませんか?はいの場合は、データベース・ダンプをテキスト・ファイルで開き、 INSERT
    INTO `civicrm_acl` VALUES
    で始まる行があることを確認します。この行は、ファイルの先頭近くの
    CREATE TABLE `civicrm_acl`CREATE TABLE`
    civicrm_acl_cache`
    で始まる行の間にある必要があります。
  • その行が存在する場合、 INSERT の権限がない可能性があります。
  • その行が存在しない場合は、それを行うダンプを取得してください。

コメントする

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