我有我的 Magento 网站的三个实例:-
- 当地的
- 在 Web 服务器上测试
- 活在网络服务器上
我可以通过 管理我的文件/文件夹和代码更改Git
,但是如何管理我的数据库更改。
当我第一次部署时,我将导入 sqldump。但在此之后,我如何更新/部署我的每一个数据库更改,主要是:-schema 更改?
我有我的 Magento 网站的三个实例:-
我可以通过 管理我的文件/文件夹和代码更改Git
,但是如何管理我的数据库更改。
当我第一次部署时,我将导入 sqldump。但在此之后,我如何更新/部署我的每一个数据库更改,主要是:-schema 更改?
处理这个问题的方法是通过扩展引入 DB 模式更改。与特定 DB 模式相关的每个新功能或功能集都应作为扩展打包在一起。在config.xml中添加指令,然后您将能够包含与扩展版本相关的数据库安装文件,并且仅在检测到新扩展版本时加载一次。这是一个例子:
确保在 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