私はDrupal 7.にいます。64MBのPHPメモリしか提供しないホスティング会社でした。新しいモジュールをインストールするときにいくつかの問題が発生しました。私のウェブサイトはメモリ不足になり、モジュールをインストールした直後にブレーキがかかります。しかし、モジュールページをリロードすると、モジュールがインストールされて機能していることが証明されます。最後にいずれかのインストールを壊すまで、私は火で遊んでいました。私のモジュールです。これはメニューブロックでした。モジュールはインストールされているように見えますが、[モジュール]ページの[構成]リンクをクリックすると、間違ったページが表示されます。モジュールの構成ページにアクセスできませんでした。インストールは失敗しました。
より多くのメモリを備えた新しいホストに切り替えましたが、今は大丈夫です。しかし、それでもメニューブロックをインストールできません。私はそれを無効にして再度有効にしてみました...何も。まだ動作していません。次に、それを無効にしてアンインストールしました。その後、再インストールしました。何も起こらないが、それでもモジュール構成ページの誤った動作。 Drupal install?に残っている問題のあるトレースを本当に完全にアンインストールするために何をする必要がありますか?データベースにメニューブロックのテーブルがまだ存在する場合に備えて、それらを完全に削除しますか?これらのテーブルを完全に削除すると、Webサイトが壊れる危険性がありますか?メニューブロックパッケージを完全に削除してから再起動しますか?これで問題が解決しないと思いました...助けてくれてありがとう、ありがとう!
メニューブロックは、インストール中にDBをまったく変更しません。 drupalコアからの 'block'および 'block_role'テーブルを使用し、いくつかの構成を格納するために 'variable'テーブルにいくつかのエントリを作成します。
だからここに私が何をするかです:
失敗したモジュールを再インストールする方がはるかに簡単なdrush
を使用してみることができます。
たとえば、Develモジュールを使用します。
_drush -y dre foo
_
プロジェクトのリストを無効化、アンインストール、およびインストールします。
または標準的な方法を使用して:
_drush -y dis foo && drush -y pm-uninstall foo && drush -y en foo
_
次に、キャッシュをクリアします(_drush -y cc all
_)。
あるいは、たとえば次のように、インストールプロセスを強制することもできます。
foo.install
_を編集し、最後にfoo_install();
を追加して、関数を手動で実行します。drush scr foo.install
_を介してファイルをdrushで実行します。foo_install();
を削除します。以下の手順に従って、メニューをクリーンアップしてインストールをブロックします。
それでも機能しない場合は、データベースを検査して、次のアンインストール条件が満たされているかどうかを確認して、モジュールが正しくアンインストールされているかどうかをデバッグする必要があります。
// Delete menu block variables.
foreach (variable_get('menu_block_ids', array()) AS $delta) {
variable_del("menu_block_{$delta}_title_link");
variable_del("menu_block_{$delta}_admin_title");
variable_del("menu_block_{$delta}_parent");
variable_del("menu_block_{$delta}_level");
variable_del("menu_block_{$delta}_follow");
variable_del("menu_block_{$delta}_depth");
variable_del("menu_block_{$delta}_expanded");
variable_del("menu_block_{$delta}_sort");
}
variable_del('menu_block_ids');
variable_del('menu_block_suppress_core');
variable_del('menu_block_menu_order');
// Remove block configurations.
db_delete('block')
->condition('module', 'menu_block')
->execute();
db_delete('block_role')
->condition('module', 'menu_block')
->execute();
cache_clear_all();