簡體   English   中英

在Magento中管理數據庫更改的部署

[英]Manage Deployment of Database Changes in Magento

我的Magento網站有三個實例:-

  1. 本地
  2. 在Web服務器上測試
  3. 在Web服務器上直播

我可以通過Git管理文件/文件夾和代碼更改,但是如何管理數據庫更改。

第一次部署時,將導入sqldump。 但是在那之后,我如何更新/部署我的每一個數據庫更改,主要是:-模式更改?

解決此問題的方法是通過擴展引入數據庫模式更改。 與特定數據庫模式相關的每個新功能或功能集都應作為擴展打包在一起。 config.xml中添加指令,然后您將能夠包含與擴展版本有關的DB安裝文件,並且僅在檢測到新擴展版本時才加載一次。 這是一個例子:

確保在config.xml中獲得了這些指令:

<config>
    ...
    <global>
        ...
        <resources>
             <extensionname_setup>
                  <setup>
                      <module>Namespace_Extensionname</module>
                  </setup>
             </extensionname_setup>
             ...
        </resources>
    </global>
 </config>

然后添加文件/app/code/community/Namespace/Extensionname/sql/extensionname_setup/install-1.0.0.php

$installer = $this;
$installer->startSetup();

/**
 * Create table 
 */
$table = $installer->getConnection()
    ->newTable($installer->getTable('extensionname/entity'))
    ->addColumn('id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
        'identity'  => true,
        'unsigned'  => true,
        'nullable'  => false,
        'primary'   => true,
        ), 'Entity ID')
    ->addColumn('name', Varien_Db_Ddl_Table::TYPE_VARCHAR, 128, array(
        ), 'Name')
    ->addColumn('description', Varien_Db_Ddl_Table::TYPE_TEXT, null, array(
        ), 'Description')
    ->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(
        ), 'Creation Time')
    ->addColumn('updated_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(
        ), 'Modified Time')
    ->setComment('Shop by Brand Table');
$installer->getConnection()->createTable($table);

$installer->endSetup();

如果對同一擴展名進行了增量更改,則可以使用名稱與版本之間匹配的文件引入增量DB模式更改,並相應地更新擴展的版本。 這也只會觸發一次。 例:

upgrade-<ver1>-<ver2>.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM