English 中文(简体)
正因为如此,Magento就不停地/低级地支持模块。
原标题:is there a reason why Magento shouldn t support uninstall/downgrade for modules

自动即时递减是企业级部署机制的一个重要特点。 目前,无法利用Magento的安装工具做到这一点。

鉴于Magento s 分——资源机制允许按顺序执行安装或升级模块的配制文字(通过执行SQ和PHP),因此,从逻辑上看,IMHO应当支持同一过程。

现在,一些明显的理由不支持:

  1. 滚动文字要独立(而且可能需要吗?” 我看不出这是避免这一特征的一个有效理由,它只是一个借口。

  2. 其他模块可能取决于安装模块。 该单元的Xml声明<depends/> node可用于标示这些联系。

  3. 开发商可能希望暂时取消模块,而不必全心全意。 这可能要求在Xml声明<active/> node上取得新的地位。

Interested in your thoughts.
JD

最佳回答

我看到了这方面的一些姿态,并调查了“基地”组织本身同样的部署情景。 我必须同意,作为企业级Magento,这种功能应当建立起来。 至少是在SO/strong>格式或时装的好消息,如何填写,我真的不清楚。 此处是例外退缩的样本:

try {
    $write = Mage::getSingleton( core/resource )->getConnection( core_write );
    $write->beginTransaction();

// do stuff here

    $write->commit();
} catch (Exception $e) {
    mage::log(__METHOD__ .  :  . __LINE__ .  : Rollback happened. );
    $write->rollback();
}

现在,如果你看一看一面/密码/核心/Mage/Core/Model/Resource/Setup.php,你就会发现相当一部分有趣的方法。 特别是:_getModificationSqlFiles/code>,_rollbackResourceDb and _modificationResourceDb

<代码>_modificationResourceDb是我最感兴趣的,因为美元交易 这里的类型也可以是滚动的,也是不停的——也指出,你也可以将购买力平价文件用于你的设置档案。

// Read resource files
$arrAvailableFiles = array();
$sqlDir = dir($sqlFilesDir);
while (false !== ($sqlFile = $sqlDir->read())) {
    $matches = array();
    if (preg_match( #^ .$resModel. - .$actionType. -(.*).(sql|php)$#i , $sqlFile, $matches)) {
        $arrAvailableFiles[$matches[1]] = $sqlFile;
    }
}

该法典实施后:

$arrModifyFiles = $this->_getModifySqlFiles($actionType, $fromVersion, $toVersion, $arrAvailableFiles);

但是,在这里,我担任核心的Magento devs在ESV资源模式的头盔中丧生,只是部分完成。

protected function _getModifySqlFiles($actionType, $fromVersion, $toVersion, $arrFiles)
{
    $arrRes = array();

    switch ($actionType) {
        case  install :
        case  data-install :
...
        case  rollback :
            break;

        case  uninstall :
            break;
    }
    return $arrRes;
}

我没有机会对上述情况进行真正的测试,而只是从我对马亨托和自动卸载的人力资源管理处的初步调查以及另一个开发商对其调查结果的投入。

归根结底,如果我们能够把我们的所有变化至少放在一个版本的控制系统中的模块里,那将是理想的。 显然,需要进口的大量数据集以这种方式管理,但对于这些小规模的增量变化,我想要推动进行中转、生产测试,如果它不能收回一个版本,而且所有东西都恢复正常。

显然,没有一种理想的部署解决办法,因为如此多的客户有着不同的要求和需求,但这样做的总体方式有助于部署守则/后勤物资。 具有讽刺意味的是,企业部已经建立了客户关系管理系统,并具备了制定法典的模块化能力,但非行并不像爱一样。

一个相关的问题是,我们目前如何用一些“带家”的专门文字来做,这些文字基本上就是:

然后用MySQLDump或背书,在BSE_URLs公司档案中取而代之。

马亨托部署的最佳做法

Another tool to look at would be Phing.

If anyone has time to investigate the "rollback" and "uninstall" processes that seem to be implemented and report their findings would be helpful to me as well.

问题回答

注:这或许不适用于Magento。

我通常认为数据库应用升级涵盖两个主要领域: 1. 代码2. 数据库。

法典的更新很容易退缩。 我通常单独管理应用软件升级/管理代码。 我通常使用一个监督厅档案系统,为我提供“不断滚动”功能。 在数据库的更新方面,事情变得更加复杂。 也可以对数据库采取类似做法。 然而,只有在测试制度上才会现实。

If it s only code rollback that you are concerned with, I d use something external of the application itself to manage this. It can be thought of as a snapshot I suppose.

如果Magento不支持这个盒子,我不认为打上这个箱子是明智的。 似乎像一项核心要求一样,即如果从一开始就没有规划和规范,那么执行工作就会很trick。





相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

难以执行 REGEXP_SUBSTR

I m 查询Oracle 10g。 我有两张表格(样本数据见下文)。 i m 试图提取一些领域

SQL Query Shortcuts

What are some cool SQL shorthands that you know of? For example, something I learned today is you can specify to group by an index: SELECT col1, col2 FROM table GROUP BY 2 This will group by col2

PHP array callback functions for cleaning output

I have an array of output from a database. I am wondering what the cleanest way to filter the values is example array Array ( [0] => Array ( [title] => title 1 ...

OracleParameter and DBNull.Value

we have a table in an Oracle Database which contains a column with the type Char(3 Byte). Now we use a parameterized sql to select some rows with a DBNull.Value and it doesn t work: OracleCommand ...

Running numbers in SQL

I have a SQL-statement like this: SELECT name FROM users WHERE deleted = 0; How can i create a result set with a running number in the first row? So the result would look like this: 1 Name_1 2 ...

How to get SQL queries for each user where env is production

I’m developing an application dedicated to generate statistical reports, I would like that user after saving their stat report they save sql queries too. To do that I wrote the following module: ...