Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > sql > mysql4-install


Автор: awers 28.10.2009, 23:44
Создание mysql4 инсталлера для модуля.
Назовём наш модуль "EXmod"

Типичная директория модуля выглядит следующим образом:
Block/
controllers/
etc/
Helper/
Model/
sql/

Для создания инсталлера достаточно добавить поддиректорию в каталоге sql.
sql/my_setup/
Далее создаём php файл с именем "mysql4-install-0.1.0.php".
0.1.0 соответственно версия модуля. Обратите внимание, версия указываемая в названии этого файла
должна совпадать с версией модуля, указанной в etc/config.xml

Код

<?php
$installer = $this;
$installer->startSetup();

// Для выполнения mysql запроса достаточно использовать следующую конструкцию
$installer->run("CREATE TABLE ...");

// Для получения имён таблиц можно использовать такую конструкцию
$installer->run("insert into {$this->getTable('customer_entity')}");
// Если вы знаете имя модели, но не знаете имя таблицы можно писать так
$admin_role_table = Mage::getSingleton('core/resource')->getTableName('admin/role');
// Соответственно тут мы меняем только параметр передаваемый в getTableName()

// Удаление колонки из таблицы
$installer->getConnection()->dropColumn($this->getTable('customer_entity'), 'parent_id');

// Получение id атрибута для дальнейших манипуляций
$installer->getAttributeId('customer', 'email');

// Удаление ключа из таблицы
$installer->getConnection()->dropKey($installer->getTable('customer_address_entity_text'), 'IDX_VALUE');

// Простые запросы и дальнейший разбор при помощи while и $query->fetch()
$query = $installer->getConnection()->query($select);
 
// Для добавления атрибутов можно использовать следующую конструкцию
$installer->addAttribute('customer', 'someattribute', array(
    'label'    => 'Some attribute',
    'visible'  => false,
    'required' => false,
));

// И прочее.

$installer->endSetup(); 
?>


Внимание, не забываем чистить кэша. System->Cache management->Refresh 


Эта статья не закончена

Автор: awers 14.11.2009, 15:37
Список функций можно найти тут: http://forum.vingrad.ru/forum/topic-280106.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)