1. Чтобы не получить бан прочти правила магентоман! Читать обязательно!

Работа с БД под магенто

Тема в разделе "Magento", создана пользователем xarow, 8 июл 2013.

Модераторы: Violent
  1. xarow

    xarow Постоялец

    Регистр.:
    8 фев 2013
    Сообщения:
    51
    Симпатии:
    36
    Здравствуйте!
    Ситуация сложилась таким образом, что магенто сам 1.6 не создает таблицу в БД.

    Это мелочь. Прошу помощи, кто сможет...
    Есть необходимость создать такую таблицу в БД, но пишет :

    SQL-запрос:
    CREATE TABLE 'novaposhta_warehouse'(
    `id` int( 10 ) unsigned NOT NULL ,
    `city_id` int( 10 ) unsigned NOT NULL ,
    `address_ru` varchar( 200 ) ,
    `address_ua` varchar( 200 ) ,
    `phone` varchar( 100 ) ,
    `weekday_work_hours` varchar( 20 ) ,
    `weekday_reseiving_hours` varchar( 20 ) ,
    `weekday_delivery_hours` varchar( 20 ) ,
    `saturday_work_hours` varchar( 20 ) ,
    `saturday_reseiving_hours` varchar( 20 ) ,
    `saturday_delivery_hours` varchar( 20 ) ,
    `max_weight_allowed` int( 4 ) ,
    `longitude` float( 10, 6 ) ,
    `latitude` float( 10, 6 ) ,
    `number_in_city` int( 3 ) unsigned NOT NULL ,
    `updated_at` timestamp NOT NULL default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
    PRIMARY KEY ( `id` ) ,
    CONSTRAINT FOREIGN KEY ( `city_id` ) REFERENCES 'novaposhta_city'( `id` ) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE = InnoDB DEFAULT CHARSET = utf8
    Ответ MySQL: [​IMG]
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''novaposhta_warehouse' (
    `id` int(10) unsigned NOT NULL,
    `city_id` int(10) u' at line 2

    Может кто-то знает, в чем дело может быть и сможет помочь? Заранее, спасибо!!!
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.037
    Симпатии:
    2.042
    Название таблицы novaposhta_warehouse должно быть не в одинарных кавычках, а в символах `
     
  3. xarow

    xarow Постоялец

    Регистр.:
    8 фев 2013
    Сообщения:
    51
    Симпатии:
    36
    Благодарствую! Вроде и делал так, как вы говорили, но все же где-то да допускал ошибку. Вопрос решен!!! Спасибо!
     
  4. jurikserf

    jurikserf Постоялец

    Регистр.:
    4 янв 2013
    Сообщения:
    104
    Симпатии:
    30
    Чтобы не создавать новую тему, есть вопрос по базе данных для Magento.

    За 1,5 года работы магазина сильно вырос объем базы данных и сейчас подходит уже к 1 Гбайту. Хостер уже выслал предупреждение, что лимит на объем 1 Гбайт и по достижении этого объема нарушится работоспособность.

    Вопрос - что вызывает рост базы и как можно уменьшить ее объем?
     
  5. xarow

    xarow Постоялец

    Регистр.:
    8 фев 2013
    Сообщения:
    51
    Симпатии:
    36
    Основным критерием роста БД являеются логи, импорт/экспорт. Для этого вам в БД надо создать SQL запрос и в него вписать это:
    TRUNCATE dataflow_batch_export;
    TRUNCATE dataflow_batch_import;
    TRUNCATE log_customer;
    TRUNCATE log_quote;
    TRUNCATE log_summary;
    TRUNCATE log_summary_type;
    TRUNCATE log_url;
    TRUNCATE log_url_info;
    TRUNCATE log_visitor;
    TRUNCATE log_visitor_info;
    TRUNCATE log_visitor_online;
    TRUNCATE report_viewed_product_index;
    TRUNCATE report_compared_product_index;
    TRUNCATE report_event;

    Те строки, которые могут выдаваться ошибками(иногда бывает), можно убрать из списка повторив уже без строки. Такое желательно хотя бы раз в месяц делать. Если будет интересно рассмотреть более подробно, обратите внимание на таблицы : dataflow_batch_export, dataflow_batch_import, log_url, log_url_info, log_visitor - они перечислины в SQL запросе. Это основные таблицы которые забирают много места в БД.

    Еще вопрос, от владельца магазина на Магенте. Вы содержите платформу на обычном хостинге? Если, да, то как происходит индексация, т-к у нас не получалось ее выполнить более с чем 10 тыс товаров. Только после перехода на VPS.
     
    LuckyNeo и Шумадан нравится это.
  6. jurikserf

    jurikserf Постоялец

    Регистр.:
    4 янв 2013
    Сообщения:
    104
    Симпатии:
    30
    Спасибо, буду пробовать.

    У нас виртуальный хостинг, но с отличным каналом и начинкой. Используем Европейского провайдера. По количеству товаров..нет у нас пока 10 000, поэтому и задался вопросом, почему база так разрослась.
     
  7. donvictorio

    donvictorio

    Регистр.:
    28 янв 2010
    Сообщения:
    868
    Симпатии:
    796
    в папке shell в корне сайта есть несколько полезных скриптов для обслуживания магазина.
    один из них - log.php, предназначенный для управления статистикой.
    запустите этот файл в командной строке консоли сервера (если у вас есть к ней доступ) и если на сервере установлено расширение php-cli (нужно для запуска скриптов в командной строке)
    Код:
    php log.php
    выведется информация, чо можно делать с помощью этого скрипта
    Код:
    Usage:  php -f log.php -- [options]
            php -f log.php -- clean --days 1
     
      clean            Clean Logs
      --days <days>    Save log, days. (Minimum 1 day, if defined - ignoring system value)
      status            Display statistics per log tables
      help              This help
    
    к примеру, при вводе команды status
    Код:
    php log.php status
    он должен выдать табличку, в которой отображается кол-во строк в таблицах с логами и место, ими занимаемое
    Код:
    -----------------------------------+------------+------------+------------+
    Table Name                        | Rows      | Data Size  | Index Size |
    -----------------------------------+------------+------------+------------+
    log_customer                      | 19        | 16.38Kb    | 16.38Kb    |
    log_visitor                        | 31.50K    | 2.64Mb    | 0 b        |
    log_visitor_info                  | 31.88K    | 5.78Mb    | 0 b        |
    log_url                            | 33.88K    | 1.59Mb    | 1.59Mb    |
    log_url_info                      | 33.23K    | 3.69Mb    | 0 b        |
    log_quote                          | 25        | 16.38Kb    | 0 b        |
    report_viewed_product_index        | 6.74K      | 311.30Kb  | 868.35Kb  |
    report_compared_product_index      | 1          | 16.38Kb    | 81.92Kb    |
    report_event                      | 7.41K      | 376.83Kb  | 835.58Kb  |
    catalog_compare_item              | 1          | 16.38Kb    | 81.92Kb    |
    -----------------------------------+------------+------------+------------+
    Total                              | 144.70K    | 14.45Mb    | 3.47Mb    |
    -----------------------------------+------------+------------+------------+
    
    запросом
    Код:
    php log.php clean
    таблицы очищаются и база худеет на глазах.



    также можно управлять индексацией с помощью скрипта indexer.php и компиляцией с помощью compiler.php
     
    jurikserf, Sobesednik и LuckyNeo нравится это.
  8. xarow

    xarow Постоялец

    Регистр.:
    8 фев 2013
    Сообщения:
    51
    Симпатии:
    36
    На любом хостинге есть доступ как к ФТП, так и к БД, так что, два варианта на выбор.
     
  9. Sobesednik

    Sobesednik Постоялец

    Регистр.:
    30 мар 2013
    Сообщения:
    105
    Симпатии:
    22
    У меня также есть вопрос по базе данных для Magento.

    До недавнего времени большинство моих БД использовали MyISAM таблицы. Я настроил my.ini, чтобы использовать InnoDB таблицы
    так как они должны присутствовать для того, чтобы запустить Magento. Мои вопросы: 1) Существует ли какои негативные эффект при перемешивании БД; 2) Какова есть хорошая практика в управлении БД, используя различные типы таблиц; 3) Нужно ли разделить эти БД и, если да, то как это сделать; 4) Как мы делаем backup БД с различными типами таблиц?
     
  10. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.037
    Симпатии:
    2.042
    1) Существует ли какои негативные эффект при перемешивании БД; - нет, не существует. Для самого MySQL перемешивания нет - он работает с тем, что есть. Так же как и кодировки - база может быть в 1 кодировке, таблица в другой, а строка - в третьей.

    2) Какова есть хорошая практика в управлении БД, используя различные типы таблиц; - см. выше - для MySQL без разницы с чем работать.

    3) Нужно ли разделить эти БД и, если да, то как это сделать; - нет, не требуется

    4) Как мы делаем backup БД с различными типами таблиц? - Так же, как и с одинаковыми типами. 1 ограничение: MyISAM можно просто физически скопировать файлы, InnoDB - только через экспорт в SQL-файлы (либо другие типы бекапов).