だから私は束縛されており、どこに行くべきか分かりません。コンテンツタイプに新しいフィールドを追加しようとした後、次のメッセージが表示されます。
Error message
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'wrrc-data.cache_field' doesn't exist: DELETE FROM {cache_field} WHERE (cid LIKE :db_condition_placeholder_0 ESCAPE '\\') ; Array ( [:db_condition_placeholder_0] => field\_info\_types:% ) in cache_clear_all() (line 167 of C:\data\htdocs\wrrc-data\includes\cache.inc).
私はどこを見ても正しい答えを見つけることができないようで、この地獄の悪夢に対処した誰かが助けてくれることを願っています。
「存在しない」(ファイルディレクトリに表示されているにもかかわらず)「cache_field」テーブルを削除しようとしましたが、「おそらく」機能するため、新しいテーブルを作成します(失敗したテーブルを置き換えるため)。この問題のために私が行ったすべてのサイトは、次のコードを提案しました:
CREATE TABLE IF NOT EXISTS `cache_field` (
cid
varchar(255)NOT NULL DEFAULT '' COMMENT 'Primary Key:Unique cache ID。'、data
longblob COMMENT 'A collection of data to cache。'、expire
int(11)NOT NULL DEFAULT '0' COMMENT 'キャッシュエントリがいつ期限切れになるかを示すUnixタイムスタンプ、または期限切れがない場合は0。、created
int(11)NOT NULL DEFAULT' 0 'COMMENT' A Unixキャッシュエントリがいつ作成されたかを示すタイムスタンプ。 '、serialized
smallint(6)NOT NULL DEFAULT' 0 'COMMENT'コンテンツがシリアル化されているか(1)、シリアル化されていないか(0)を示すフラグ。 '、PRIMARY KEY (cid
)、KEY expire
(expire
))ENGINE = InnoDB DEFAULT CHARSET = utf8 COMMENT = '分離されていないものをキャッシュするための汎用キャッシュテーブル...';
しかし、このsqlコマンドを開始した後、次のエラーが発生します。
#1005 - Can't create table 'wrrc-data.cache_field' (errno: -1) (Details…)
これ以上の情報は提供されません(想定される「詳細」ページでさえスクワットは提供されません。説明されているのはInnoDBの背景であり、手元のエラーに追加するものはありません。
誰か提案はありますか?他のサイトで提案されていたように、サイトをまったく再作成したくありませんが、これは私を疲れさせ始めています。別のサイトを作成する必要がある場合、エラーが発生することなく、データとフォーマットを引き継ぐプロセスを合理化する方法はありますか?
よろしくお願いします。マット
私はすでにこの質問に答えました here そして問題は解決しました。 Drupalで作業する多くの人々がこの問題に直面しています。これが答えです:
私は同じ問題を抱えていましたが、私の場合、問題はデータベーステーブルエンジンでした:デフォルトではInnoDBであり、(何らかの理由でまだ理解する必要はありません)Drupalはこのエラーを報告します。
データベースエンジンをMyISAMに変更する必要があります。まず、Drupalによって作成されるテーブルがエンジンとしてMyISAMを持っていることを確認する必要があります。_
/includes/database/mysql/schema.inc
_で、createTableSql($name, $table)
を探し、変更します。 InnoDBをMyISAMに保存してから、保存します。
データベースにはいくつかのテーブルがあるため、それらもMyISAM
に変更する必要があります。そのため、データベースを.sqlファイルとしてエクスポートし、テキストエディターで開き、_Engine=InnoDB
_を置き換えます。 _Engine=MyISAM
_を使用します。次に、サーバーでphpmyadmin
DBのすべてのテーブルを削除し、そこに新しい_.sql
_ファイルをインポートします。このように、すべてのテーブルとDrupalによって作成されるテーブルはMyISAMです。
https://www.drupal.org/node/2144205#comment-9288889 でリンクをチェックアウトすると、これが示唆されます。
Cache_fieldテーブルが破損している場合は、drushからupdate.phpまたはcc allを実行して、テーブルをクリアできるはずです。スキーマを削除して再構築せずにテーブルの内容を空にしたい場合は、cache_tableから削除するか、cache_tableを切り捨てます。
https://www.drupal.org/node/2144205#comment-8368871 にある同じリンクに別の提案があります...
これらのリンクのどちらも役に立たない(または機能しない)場合は、インストール/有効化プロセスの一環として、どのモジュールがそのテーブルを作成するかを調べます。次に、そのモジュールをアンインストールして再インストールします...
コンテンツタイプの設計については、データベース構造に基づいて行動するべきではありません。私の提案は、コンテンツタイプのクローンを作成し、新しいコンテンツタイプで作業することです。これが機能しない場合は、新しいものを作成します