2009-07-22 18 views
2

私はアップグレードしたい古いDrupalサイトを持っていますが、/ファイルから(jpgs、gifsなどの)すべてのサイトデータファイルを/ sites/default/files。MySQLデータベースで文字列をグローバルに変更する方法

私は、/ files/*のインスタンスを見つけるためにPHPスクリプトまたはMySQLコマンドを使い、/ sites/default/files/*に変更したいと思います。名前、もちろん!)。

これはかなり簡単ですか?私が使うことができる関数上のポインタ?

答えて

4

MySQLには、文字列置換機能が組み込まれています。このようなものはいかがですか?

UPDATE table SET field = REPLACE(field,'/files/','/sites/default/files/'); 

あなたにも必要な場合は、より複雑な代替品(すなわち。正規表現)のために使用することができますother functionsあります。

+0

動作するはずです。私はテスト環境でそれを試し、それがどうなるか見てみましょう! –

+0

ちょうどこの値を(いくつかの異なるテーブルのために)使用し、すべてが魅力のように機能します。ありがとう! –

+0

問題なく、うまくいきました。 – zombat

0

Drupal設定で 'ファイル'のパスを変更したばかりです。

+0

このようにすると、すべての新しいファイルが更新され、Drupalのファイルの内部使用が変更されますが、すべてのノードがリンク/参照ファイルで更新されることはありません。 –

0

ファイルテーブルを変更するだけの場合は、SQLでUPDATEを実行できます(zombatのように)。あなたが他の多くのインスタンス(IE - 完全なHTMLノード本体など)を持っているなら、DBをテキストファイルにエクスポートすることができます(mysqldumpまたはPHPMyAdminのエクスポート機能で行うことができます)。適切なテキストエディタ、sedのようなコマンドラインツール、または多数のインターンのいずれかで文字列を更新するだけです。

+0

ああ - これは別の良いオプションになります。私が取り組むべき次のサイトのためにこれを行うかもしれない! –

関連する問題