我正在尝试为我的扩展程序创建安装脚本,由于某种原因,它不会安装脚本。该扩展名将显示在core_resource表中,但是我要创建的属性不会创建。
我非常确定该脚本甚至没有被调用,因为我在开头放置了exit()并且该站点运行得很好。
这是我的配置XML文件中的内容。这放置在全局->资源路径中:
<nie_setup>
<setup>
<module>Nie_Nie</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</nie_setup>
我的安装脚本如下:
$installer = $this;
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$installer->startSetup();
$setup->addAttribute('customer', 'nie_admin', array(
'input' => 'text',
'type' => 'text',
'backend' => '',
'visible' => 0,
'required' => 0,
'user_defined' => 1,
));
$installer->endSetup();
有什么明显的我想念的地方是脚本无法运行的原因吗?
在本文中逐步进行操作,以确保您对设置资源的功能,它们如何工作以及如何对它们进行故障排除没有任何误解。
完成此操作后,从您在此问题线程上说的所有内容看来,您似乎正在“安装”资源,但是安装脚本永远不会运行。我的猜测是您使用的版本号
//0.0.1 is your version number
mysql4-install-0.0.1.php
与您的模块版本不匹配
<modules>
<Nie_Nie>
<version>?.?.?</version>
</Nie_Nie>
</modules>
那些应该匹配才能运行脚本。我 认为 Magento可以找到以前的版本,足够聪明地运行它们,但是设置资源中的代码很难遵循,因此我始终确保它们匹配。
无论如何,这是当您运行设置资源时如何查看magento尝试运行的文件的方式。删除core_resource
与模块相关的所有条目。清除缓存。然后在安装程序类中找到以下位置
app / code / core / Mage / Core / Model / Resource / Setup.php :
protected function _modifyResourceDb($actionType, $fromVersion, $toVersion)
{
...
$sqlFilesDir = Mage::getModuleDir('sql', $modName).DS.$this->_resourceName;
if (!is_dir($sqlFilesDir) || !is_readable($sqlFilesDir)) {
return false;
}
...
$sqlDir->close();
if (empty($arrAvailableFiles)) {
return false;
}
...
$arrModifyFiles = $this->_getModifySqlFiles($actionType, $fromVersion, $toVersion, $arrAvailableFiles);
if (empty($arrModifyFiles)) {
return false;
}
然后修改它们以添加一些临时调试异常
if (!is_dir($sqlFilesDir) || !is_readable($sqlFilesDir)) {
throw new Exception("$sqlFilesDir not found");
return false;
}
...
if (empty($arrAvailableFiles)) {
throw new Exception("No files found to run");
return false;
}
...
$arrModifyFiles = $this->_getModifySqlFiles($actionType, $fromVersion, $toVersion, $arrAvailableFiles);
if (empty($arrModifyFiles)) {
throw new Exception("No valid upgrade files found to run for ");
return false;
}
throw new Exception("If you're getting here, we have a file. Remove your exceptions here and place one in your installer to make sure it's the one you think it is.");
重新加载页面,您会收到异常文本,抱怨Magento找不到任何内容。这应该足以帮助您跟踪Magento尝试运行的安装程序脚本,但是找不到。只要记住要删除模块中的行core_resource
并清除缓存即可。(Magento缓存需要检查安装/升级的模块)
如果那不起作用,请开始研究的逻辑applyAllDataUpdates
并弄清楚为什么该类不包括您的安装程序文件。
本文向大家介绍shell 脚本安装PHP扩展的简单方法,包括了shell 脚本安装PHP扩展的简单方法的使用技巧和注意事项,需要的朋友参考一下 实例如下: 以上这篇shell 脚本安装PHP扩展的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
我似乎在绕圈子,试图用phpbrew安装一个PHP版本。当尝试安装任何版本的php时,它会返回一个致命错误: 找不到openssl扩展名,要下载版本文件,您需要openssl。 但是当我尝试通过phpbrew安装openssl时,它也会抛出一个错误: 错误:未定义PHPBREW_PHP环境变量。此扩展命令要求您从生成列表中指定PHP版本。 任何帮助都将不胜感激。 phpbrew--debug安装p
如果我尝试安装一个新的扩展,从PHPStorm或命令行,我得到这个错误: 注意:我在我的php上禁用了xdebug扩展,但警告仍然显示在应用程序中。 C:\wamp\bin\php\php5.5.12\php.exe C:\wamp\www\calificaciones\composer.phar require 2amigos/yii2日期选择器小部件:1.0.5-n--在启用xdebug的情况
个人扩展文件夹 VS Code 会在个人扩展文件夹中.vscode/extensions来寻找扩展组件。不同的平台其文件夹所在的位置也不同: Windows %USERPROFILE%\.vscode\extensions Mac ~/.vscode/extensions Linux ~/.vscode/extensions 如果你想在VS Code 每次启动都能够加载你自己的扩展或者定制化信息,
问题内容: 我正在尝试将MySQL安装到最新版本,这是因为某些安装错误。我运行命令,并且收到以下信息: 构建本机扩展。这可能需要一段时间…错误:安装mysql时出错:错误:无法生成gem本机扩展。 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告:PATH模式
PHP 7.3.5你好,我有一个问题的扩展超文本传输协议,和作曲家说我的超文本传输协议是丢失的,即使我写这在作曲家. json,为什么?这个确切的消息:_Problem1-请求的PHP扩展超文本传输协议*在您的系统中丢失。安装或启用PHP的超文本传输协议扩展。我试图看到php.ini,但我没有看到任何相关的东西 删除整个供应商directroy的工作可能是因为它的php版本后。。。