Сломались Views3 при апдейте с rc3 на release 3.0
Прислано: v1adimir@drupal.org
вт, 27/12/2011 - 03:23
При апдейте при помощи drush сломались Contextual Filters. Чуть позже будет пара скриншотов. Ни решения, ни issue такого пока не обнаружил. Еще изучаю проблему.
В общем, имейте в виду!
[ДА! РЕШЕНО] Массовое обновление (UPDATE) записей БД в Drupal 7 одним запросом
Прислано: OldWarrior
ср, 14/12/2011 - 11:33
Столкнулся с необходимостью массовой обработки записей в БД Drupal 7 одним запросом.
Как известно, вызовы db_query() для UPDATE, INSERT, DELETE в D7 теперь считаются deprecated и заменены на db_update(), db_insert() и db_delete().
Допустим, с db_delete и db_insert особых вопросов не возникло - в случае с множественной обработкой рядов. А вот с db_update проблемы.
Ситуация такая, что нужно выполнять обновление разных полей с разными primary key и опять же разными (отличными) значениями. Одним запросом.
На D6 я решал вопрос так:
<?php
$query = 'INSERT INTO {some_table} (id, field1, field2, field3, field4) VALUES ';
foreach( $rows AS $row )
$query_values[] = '(\''.$row['id'].'\', \''.$row['field1'].'\', \''.$row['field2'].'\', \''.$row['field3'].'\', \''.$row['field4'].'\')';
db_query($query . implode(',', $query_values) .
' ON DUPLICATE KEY UPDATE field1 = VALUES(field1), field2 = VALUES(field2), field3 = VALUES(field3), field4 = VALUES(field4)');
?>То есть, тут вся фишка в условии "ON DUPLICATE KEY UPDATE ... ", это позволяет избежать ошибок при дублировании primary key.
Собственно вопрос: как это реализовать в случае с db_update() в D7?
Ведь как условие или выражение "ON DUPLICATE KEY UPDATE ... " вроде тут не пристегнёшь.
В цикл же загонять не хочется, тяжело будет...
И второй вопрос (на крайний случай): кошерно ли (по меркам Друпала) будет произвести такую проверку:
Обновление дизайна Drupal-приложения
Прислано: Dark_Neo
чт, 20/10/2011 - 17:48
Доброе %время_суток%.
Есть ли какой-нибудь инструмент, который бы позволил легко переносить изменения со стенда разработки на боевую площадку.
Имею следующую ситуацию: есть стенд разработки, где непосредственно выполняется разработка, стенд тестирования и непосредственно, продакшн.
После завершения спринта изменения сначала необходимо переносить на тестовый, затем на боевой. Данные с боевого никак терять нельзя, но изменения накатывать как-то нужно, т.е. простой заменой файлов и базы дело не обойдется.
Есть ли какое-нибудь готовое решение?
[РЕШЕНО] Drupal ругается на UPDATE
Прислано: Cloudiya
ср, 28/09/2011 - 10:48
Здравствуйте!
При попытке обновить записи в таблице с использованием запроса
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
выдается ошибка "You have an error in your SQL syntax и т.д.",
но если сделать так:
UPDATE table_name
SET table_name.column1=value, table_name.column2=value2,...
WHERE table_name.some_column=some_value
то все срабатывает нормально.
Мне конечно не сложно дописывать имена таблиц, но что делать с функциями, использующими UPDATE, например drupal_write_record? Из-за чего может возникать такая ошибка?
Множественный UPDATE
Прислано: dudin.ie
ср, 20/04/2011 - 20:08
Можно ли заменить конструкцию вида:
<?php
$count = 1;
$nids=array('1','5','12','21','55');
foreach ($nids as $nid) {
db_update('nweight')
->fields(array('weight' => $count))
->condition('nid' , $nid)
->execute();
$count++;
}
?>одним запросом к базе данных?
А то в моем случае массив $nids может состоять и из 100 элементов и больше.
100 апдейтов за раз делать не хочу *)
[РЕШЕНО]Запрет обновления конкретного модуля, темы, как?
Прислано: Softovick
вт, 15/02/2011 - 08:47
Други, подскажите.
Есть ли способ после скачивания с drupal.org модуля или темы, что-то изменить, возможно в .info, чтобы Update не сигналил и не пытался обновить этот модуль/тему с d.org, а оставил ее как есть. Слегка поменяется шаблон и css.
Есть вариант конечно полной замены старого названия темы на новый во всех файлах темы. Но есть ли другой способ? И да, подтемы этой темой не поддерживаются.
UPD:
Выяснилось, что в .info модуля или темы есть раздел, где присваивается переменная project. Если установить значение этой переменной в свое значение, которого нет на d.org, то обновляя видеть он перестанет.
Нужно ли делать Update ?
Прислано: natasha.ferrand@gmail.com
чт, 20/01/2011 - 19:40
Привет всем !
Я не могу найти информацию о том, нужно ли делать update все время ? Т. е. могу ли я установить все модели и как только я удовлетворена результатом, когда все работает отлично, можно ли отключить Update ? Т. к. все время возникают проблемы при переустановке модулей и core.
Спасибо !
update.php - файл не найден
Прислано: IrinaStasuk
вс, 19/12/2010 - 13:06
Бьюсь уже пару месяцев, но не понимаю, почему у меня на сайте не открывается страница http://мой сайт/update.php. Из-за этого не смогла обновиться на новую версию - update.php не запускается. Отноложила решение проблемы до декабря, когда можно уделить этому больше времени, обыскала весь форум, заменила update.php, скачав его с drupal.org (соответствующая версия) - все равно "Вы попытались получить доступ к адресу ..., который сейчас недоступен".
Что я делаю не так? (пятая версия, мультисайтинга нет, нахожусь под главным админом)
Кто с MySQL на ты? Есть вопрос по поводу Insert/Update
Прислано: Siegfrid@drupal.org
вс, 28/11/2010 - 21:20
Заметил, что у меня очень медленно выполняются все операции с диском, а именно Insert, Update и Delete. В среднем они занимают где то 0,2 - 0,5 c., Иногда доходит до секунд. Нагрузка маленькая, оперативки более чем достаточно - 600Mb под MySQL. Пользую таблицыа InnoDB (my.cnf в аттаче).
Гуру, подскажите, куда смотреть и что править.
Буду признателен за помощь!
Проблемы с CSS после обновления на Drupal 6.19
Прислано: DSJ
пн, 15/11/2010 - 04:02
После обновления Drupal до версии 6.19 (до этого была 6.15) при включении в настройках "Производительность" -> "Оптимизировать CSS-файлы" CSS вообще отсутствуют, причём только для моей темы оформления, со стандартными всё в порядке. Что изменилось в этой версии Друпала касательно шаблонов и в каком места следует искать причину?
Хук на публикацию ноды или ее создание
Прислано: noway
вт, 17/08/2010 - 08:08
Всем привет!
Мне надо отлавливать событие первичной публикации ноды или ее создания (часть нод создаются, но публикуются позже)
Я пользую hook_nodeapi и там $op=='save' || $op=='update' но как я понимаю update может срабатывать не только при перезаписи ноды (ибо у меня по крону он с десяток раз срабатывает).
Как вот сделать так? я храню список уже опубликованых нод, чтобы мое событие срабатывало однократно. Но почему-то у меня в событие влетает куча старых нод, для которых никакого обновления не происходило.
Где загвоздка? спасибо!
db_query + UPDATE + поле auto_increment = неожиданное приращение
Прислано: Ctrl
чт, 29/07/2010 - 14:29
Всем, удачного дня!
Наткнулся на странное явление.
При написании модуля использовал такую строку:
db_query("UPDATE {modulename_works} SET work_name = '%s', work_norm = %f WHERE work_id = %d", $work_name, $work_norm, $work_id);
Интересно то, что когда она отрабатывает, то work_id изменяется на +1
Это поле в базе со свойством автоинкремента, однако если это делать через консоль или phpmyadmin, то id остается прежний
Не понимаю, почему используя запрос через Друпал происходит прибавление значения?
%)
И снова update до 6.17
Прислано: egorovanton
ср, 02/06/2010 - 19:31
Все бегом обновляться http://drupal.org/node/816290
Уязвимости кривого апдейта 6.16
Прислано: mak-vardugin
пн, 15/03/2010 - 22:46
Провел тест уязвимостей хорошо обновленного и плохо обновленного сайтов (с 6.15 до 6.16) сканером XSpider 7.7 Build 3253, результат приводить не буду. Но те кто плохо обновился рискуют остаться без сайта. Прога выявляет 2 возможности для SQL инъекций. Так что обновляйтесь внимательно.
Отключение модулей во время обновления БД
Прислано: Siegfrid@drupal.org
сб, 13/03/2010 - 13:26
У многих возникает задача обновить старую версию ядра на новую. Если следовать мануалу, то необходимо отключить все свои и дополнительные модули, прежде чем начать делать update. Выполнять это ручками не кашерно, да и не все так хорошо знают SQL, поэтому, тем, кто не в ладах с базами данных может немного облегчить эту задачу этот мануал:
Прежде чем начинать делать update не забудьте сделать бекап!
1. коннектимся к вашей БД:
mysql -u <имя пользователя БД> -p<пароль> <название БД>
1. Создаем временную таблицу backup_system
CREATE TABLE `backup_system` (
`filename` varchar(255) NOT NULL DEFAULT '',
`name` varchar(255) NOT NULL DEFAULT '',
`type` varchar(255) NOT NULL DEFAULT '',
`status` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`filename`),
KEY `modules` (`type`(12),`status`,`filename`),
KEY `type_name` (`type`(12),`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2. Копирование данных по активным модулям
INSERT INTO backup_system (filename, name, type, status)
SELECT s.filename, s.name, s.type, s.status
FROM system s where s.`filename` Like 'sites/%' AND status = 1 and s.type = 'module';
3. Отключаем все модули
UPDATE system s SET s.status = 0 where s.`filename` Like 'sites/%' AND s.status = 1 and s.type = 'module';
(если надо отключить еще и темы, то просто надо убрать and s.type = 'module')
4. Далее обновляем ядро, выполняем скрипт http://yoursite.com/update.php
Если все ок, то продолжаем дальше
5. Включаем обратно все модули
UPDATE system s, backup_system bs SET s.status = 1