たとえば、タグを機械的に追加するために、drupalサイトのすべてのノードを調べて更新する最も効率的な方法は何ですか?Drupal 6には光沢のある新しいバッチAPIがありますが、Drupal 5で何をすべきですか?
ポインターを保持し、cron上のすべてのノードを巡回し、それらをロードしてから保存するスクリプトを書き始めましたが、他に何ができるのだろうかと思います。
たとえば、タグを機械的に追加するために、drupalサイトのすべてのノードを調べて更新する最も効率的な方法は何ですか?Drupal 6には光沢のある新しいバッチAPIがありますが、Drupal 5で何をすべきですか?
ポインターを保持し、cron上のすべてのノードを巡回し、それらをロードしてから保存するスクリプトを書き始めましたが、他に何ができるのだろうかと思います。
一部のモジュールは他の関連テーブルを更新する可能性があるため、データベース レベルで直接作業することはお勧めしません。最も信頼性が高く柔軟な方法は、ループ内でノードをロード、変更、および保存するスクリプトを作成することです。Drupal 5 用の特別なモジュールを追加して試すこともできます。
うーん、私はdrupal 5のデータベース構造に精通していませんが、drupal 6と十分に類似している場合は、term_node
テーブルを操作するだけで、これをすべて非常に簡単に変更できます。これは、ノードIDから用語IDへのマッパーです。
term_node
- nid
- vid
- tid
もちろん、nidはノードID、vidはリビジョンID、リビジョンを使用する場合はtidは用語idです。用語はすべてに保存されますterm_data
term_data
- tid
- name
より興味深い列です。したがって、既存の用語がすでにある場合は、既存のtidのクイックマップを作成してから、term_nodeで必要なノードに追加できます。とにかく、この点で不注意であると、奇妙なデータの問題が発生する可能性があるため、生のデータベースにかなり慣れていない限り、このアプローチはお勧めしません。