2009-07-22 2 views
2

У меня есть старый сайт drupal, который я хотел бы обновить, но мне нужно переместить все файлы данных сайта (например, jpgs, gif и т. Д.) Из/в файлы/сайты/по умолчанию/файлы.Как изменить строку глобально в базе данных MySQL

Я хотел бы использовать PHP-скрипт или только команду MySQL для поиска любого экземпляра/files/* и изменить его на/sites/default/files/* (без испорчения строки в * части имя, конечно!).

Это довольно легко сделать? Любые указатели на функцию, которую я мог бы использовать?

ответ

4

У MySQL есть некоторые встроенные функции замены строк. Как насчет чего-то подобного?

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

Там в other functions вы можете использовать для более сложных замен (то есть. Регулярные выражения), если вам нужно, а также.

+0

Похоже, что он должен работать. Я попробую это в своей тестовой среде и посмотрю, как это происходит! – 2009-07-22 18:16:02

+0

Просто использовал это значение (для нескольких разных таблиц), и все работает как шарм. Благодаря! – 2009-07-22 19:37:53

+0

Без проблем, рад, что это сработало. – zombat

0

Я уверен, что это всего лишь случай изменения пути файлов в конфигурации Drupal.

+0

Это позволит обновить все новые файлы и изменить внутреннее использование файлов Drupal, но не будет обновлять все узлы ссылками/ссылками на файлы. – 2009-07-22 18:30:47

0

Если вы просто меняете таблицу файлов, вы можете сделать UPDATE с SQL, как сказал zombat. Если у вас есть значительное количество других экземпляров путей (IE - полные тела HTML-узлов и т. П.), Лучшим вариантом было бы экспортировать БД в текстовый файл (можно сделать это с помощью mysqldump или функции экспорта PHPMyAdmin) и то просто обновите строки там - либо подходящий текстовый редактор, инструмент командной строки, например sed, либо кучу стажеров.

+0

А - это был бы еще один хороший вариант. Можете сделать это для следующего сайта, над которым мне нужно работать! – 2009-08-05 14:13:48

 Смежные вопросы

  • Нет связанных вопросов^_^