Как сменить префиксы у БД?

Главные вкладки

Аватар пользователя fit fit 10 марта 2010 в 8:29

Подскажите, как можно сменить префиксы в таблиц и внутри sql файла? Хочу вынести сайт после мультисайтинга на отдельный движок.

Комментарии

Аватар пользователя Bios Bios 10 марта 2010 в 9:34

Сtrl + H чтоли???
И правка settings.php, а именно строки $db_prefix = ''; хотя нет это помоему не то
Варварский метод но помоему задача нестандартная, вряд ли есть модули, хотя хз...

Аватар пользователя ikut ikut 10 марта 2010 в 10:43

Не знаю, это ли Вы имели в виду:
У меня несколько сайтов на локальном компьютере в режиме отладки работают через виртуальный хостинг. Переодически, после отладки, их приходиться выкладывать на рабочий хостинг.
Я использую редактор VIM (подойдет любой редактор, работающий с регулярными выражениями)
Чере backup_migrate (мне так удобно), получаю файл и при помощи выражений типа:
%s/\(\'sites\/site\.drupal\/files\/\)\(.*\.jpg\'\)/\'system\/files\/\2/g
%s/\(\'sites\/site\.drupal\/files\/\)\(.*\.doc\'\)/\'system\/files\/\2/g
%s/\(\'sites\/site\.drupal\/files\/\)\(.*\.gif\'\)/\'system\/files\/\2/g
%s/\(\'sites\/site\.drupal\/files\/\)\(.*\.png\'\)/\'system\/files\/\2/g
делаю замены.
Готового модуля мне не удалось найти.
Работа в лоб, но главное решает задачу.

Аватар пользователя Serge66 Serge66 10 марта 2010 в 12:55

В текстовом редакторе в дампе базы заменить "префикс_" на "". С третьей попытки получится.
Но наверно это слишком простое решение.
А можно прямо с этим префиксом перенести. Но это чересчур просто.

Аватар пользователя fit fit 10 марта 2010 в 18:49

"Bios" wrote:
Сtrl + H чтоли???
этот метод не универсалент т.к. префиксы могут совпадать по названиям со стандартными таблицами... Тогда сами знаете, что ничего не получится.

"elia" wrote:
Я делал так
К сожалению этот метод изменит только префиксы таблиц, не более.. А начинку всей БД тоже ведь нужно будет менять. Одним ренеймом таблиц не обойтись...

"Serge66" wrote:
С третьей попытки получится.
Это похоже на совет Bios. Это счастье, если Ваш префикс не совпадает с названием стандартных таблиц Smile

Аватар пользователя elia elia 10 марта 2010 в 18:58

"fit" wrote:
К сожалению этот метод изменит только префиксы таблиц, не более.. А начинку всей БД тоже ведь нужно будет менять. Одним ренеймом таблиц не обойтись...

Странно. Читаю Ваш вопрос:
"Bios" wrote:
Подскажите, как можно сменить префиксы в таблиц и внутри sql файла?

А что Вы используете внутри sql файла? Функции Drupal или нативный API MySQL? Если первое, то во всех query имена таблиц должны быть заключены в {}, если второе, то или переходить к первому или вспоминаем сказку про злобного Буратино.

Аватар пользователя Bios Bios 10 марта 2010 в 21:23

elia
Посмотрите в SQL файл, это текстовый документ, только открывайте Notepad ++ bkb чем то похожим, а не блокнотом...

Аватар пользователя elia elia 11 марта 2010 в 10:06

"Bios" wrote:
elia
Посмотрите в SQL файл, это текстовый документ, только открывайте Notepad ++ bkb чем то похожим, а не блокнотом...

1. Я не знаю в какой файл смотреть Smile
2. Я не использую Notepad++ и никаких проблем все равно не испытываю.
Wink