Добрый день!
Столкнулся с такой проблемой:
Необходимо сделать два сайта с общим контентом в третьей общей БД.
Почитав форум сделал следующие шаги:
- Создал сайт sait1 с БД bd1, в которой префикс к таблицам drupal pre1_;
- Перенес две таблицы материалов во вторую БД bd2;
- Удалил две таблицы из первой БД bd1;
Настройки settings.php для сайта выглядят так:
$db_url = 'mysql://username:password@localhost/db1';
$db_prefix = array(
"default" => "pre1_",
"content_type_xxx_page" => "db2.pre1_",
"content_type_yyy_page" => "db2.pre1_",
);
После чего материалы без проблем добавляются во вторую БД bd2.
Но при попытке добавления нового поля в тип материала возникла проблема.
USER warning: TABLE 'pre1_content_type_xxx_page' already EXISTS query: CREATE TABLE db2.pre1_content_type_xxx_page ( `vid` INT UNSIGNED NOT NULL DEFAULT 0, `nid` INT UNSIGNED NOT NULL DEFAULT 0, `field_xxx_value` LONGTEXT DEFAULT NULL, PRIMARY KEY (vid), INDEX nid (nid) ) /*!40100 DEFAULT CHARACTER SET utf8 */ IN /usr/hosting/u1/www/xxx/html/xxx/includes/DATABASE.inc ON line 551.
Поле создается в самом drupal, а в таблице новой колонки не появляется. Соответственно, при попытке добавления контента этого типа материала, появляются ошибки в связи с отсутствием необходимой колонки. Я не силен в мускуле, но не могу понять почему запрос формируется как CREATE TABLE, не может же быть чтобы добавление колонки осуществлялось пересозданием таблицы.
Прошу помочь, кто сталкивался с подобной проблемой или знает в чем дело.
[#46288]Материал[/#] схож по проблеме, но там всё упиралось в неправильные настройки settings.php
Заранее благодарен.