[英]Manage Deployment of Database Changes in Magento
我的Magento網站有三個實例:-
我可以通過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.