2010-03-24 21 views

回答

0

只需刷新頁面。燙髮幾秒鐘後重建:)。

+0

曾經做過......幾次。有什麼我可以做/檢查嗎? – Shaun 2010-03-24 16:42:08

+0

一個多小時,它的排序;-) – Shaun 2010-03-24 16:54:38

4

標準的「重建燙髮」持續時間大致與節點數量乘以啓用的訪問模塊數量成正比。

在擁有100k個節點的站點上,您可以輕鬆完成24小時以上的重建權限。這意味着你只是不想交互地做它。但是你可以從drush啓動重建,或者使用其中一種更快的非標準重建方法。

+0

你將如何重建在生產現場的權限? – Rimian 2010-03-25 02:58:02

+0

基本上:運行一個CLI(drush)腳本,該腳本在module_invoke_all('node_access_records',$ node)上循環,以便所有節點在該循環中生成一個數據文件(非數據庫)。然後,一旦完成,TRUNCATE node_access和LOAD DATA INFILE INTO node_access。 最後,通過調用node_access_needs_rebuild(FALSE)告訴Drupal它完成了; 根據您的RAM /負載限制進行優化,並在重建循環期間更改節點權限的可能性。這個稍微詳盡的變體使我們能夠將重建從24小時減少到30分鐘。 – FGM 2010-03-30 14:01:22

+0

'FGM':你能分享一下你的自定義Drush腳本嗎?這對我們有很大的幫助。 – Max 2012-03-02 14:06:02

3

要通過drush,使用做:

drush PHP-EVAL 'node_access_rebuild();'

0

注意:如果花費24小時在具有100K節點的站點上重新構建,則會出現問題。在一個擁有200K + FWIW的網站上,我們需要大約30分鐘。對於一個較小的網站,它應該少得多;我懷疑你遇到了某種錯誤。

+0

node_access_rebuild()爲每個節點調用node_load() - 所以可能的問題可能是很多模塊實現了hook_load()並在那裏執行一些升沉操作。 – webdevbyjoss 2012-09-11 11:13:23

0

一個快速解決方案可以只是將您的主題改回默認的GARLAND主題,而不是重新嘗試重建權限,很可能它會起作用。有時它是JS錯誤導致它停留在初始化。

如果你的網站有太多的數據(節點像100K和200K),你也可以通過將其放置在在Drupal根的PHP文件並運行它使用這個腳本。該代碼是在標題

WSODs由於特定的模塊 - >節點此鏈接訪問

http://drupal.org/node/158043