Questions tagged «install-script»

3
如何以编程方式向Magento中的现有表添加新列?
如何通过安装脚本向现有的Magento核心表添加新列?(不使用纯SQL) 我想使用Magento方法,该方法使用别名方法来创建安装脚本。 到目前为止,我只关注了一些教程。但似乎无法正常工作。Magento安装脚本中的这个StackOverflow ALTER TABLE而不使用SQL答案与我的问题有点相似。但是内容应该放在模块confg.xml文件中吗?我是否只需要定义资源模型,模型和设置数据就足够了? config.xml(我的模块的)相关部分如下。 <config> . . . <global> <models> <mymodule> <class>Mynamespace_Mymodule_Model</class> <resourceModel>mymodule_resource</resourceModel> </mymodule> <mymodule_resource> <class>Mynamespace_Mymodule_Model_Resource</class> </mymodule_resource> </models> <resources> <mymodule_setup> <setup> <module>Mynamespace_Mymodule</module> </setup> <connection> <use>core_setup</use> </connection> </mymodule_setup> <mymodule_read> <connection> <use>core_read</use> </connection> </mymodule_read> <mymodule_write> <connection> <use>core_write</use> </connection> </mymodule_write> </resources> . . . . </config> 我的安装脚本如下。 $installer = $this; $installer->startSetup(); …


3
运行升级脚本时当前存储为1
知道Mage::app()->getStore()在我运行升级脚本的独立于商店视图的升级脚本中时,为什么返回ID为1的商店视图吗? 我的意思是,我知道执行此操作的代码在哪里。其中Mage_Core_Model_App::getStore()有: if (!Mage::isInstalled() || $this->getUpdateMode()) { return $this->_getDefaultStore(); } 和_getDefaultStore看起来像这样: if (empty($this->_store)) { $this->_store = Mage::getModel('core/store') ->setId(self::DISTRO_STORE_ID) ->setCode(self::DISTRO_STORE_CODE); } return $this->_store; $this->_store 达到上述方法时始终为空。 即使将其添加到升级脚本的顶部,我也会得到相同的结果: Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID)); 我对具有此“功能”的业务逻辑感到好奇。

1
Magento 2卸载模块
显然,现在Magento 2支持卸载脚本,该脚本允许在卸载模块时修改数据库架构(敬请期待!)。 如此处所述,这仅适用于通过composer安装的模块。 (我希望将来所有模块都可以使用,但这是一个不同的问题)。 假设我有一个名为的模块Testing_Demo。 该模块执行3件事,我希望在卸载时将其删除。 添加一个名为的表testing_demo。所以我需要删除它。 添加名为的产品属性demo。所以这需要删除 的某些设置system->configuration可能会或可能不会存储在表中core_config_data。所有这些设置都有路径testing_demo/...。因此,这些也需要删除。 我的模块卸载脚本应如何显示?

1
当我们查看eavSetup时,哪些值可用于类型和输入?
为Magento 2创建安装脚本时,哪些类型的值可用于类型和输入部分eavSetup->addAttribute()?或者我可以在哪里找到答案? $eavSetup->addAttribute( \Magento\Catalog\Model\Product::ENTITY, 'some_attr', [ 'type' => '', 'backend' => '', 'frontend' => '', 'label' => 'Test Attribute', 'input' => '', 'class' => '', 'source' => '', 'global' => \Magento\Catalog\Model\Resource\Eav\Attribute::SCOPE_GLOBAL, 'visible' => true, 'required' => false, 'user_defined' => false, 'default' => 0, 'searchable' => false, 'filterable' => false, 'comparable' …

3
Magento2 InstallSchema将新列添加到现有表
我正在尝试向magento2中的现有表添加新列 <?php namespace Vendor\Module\Setup; use Magento\Framework\Setup\InstallSchemaInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\SchemaSetupInterface; /** * @codeCoverageIgnore */ class InstallSchema implements InstallSchemaInterface { /** * {@inheritdoc} * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function install(SchemaSetupInterface $setup, ModuleContextInterface $context) { $installer = $setup; $installer->startSetup(); $eavTable = $installer->getTable('eav_attribute'); $columns = [ 'my_column' => [ 'type' => \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, 'length' => …

3
Magento 2将“ VARCHAR”类型字段添加到自定义表中
请查看位于以下位置的当前核心数据库适配器文件(Table.php): magento-2 /供应商/ magento /框架/ DB / Ddl: <?php /** * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ /** * Data Definition for table * * @author Magento Core Team <core@magentocommerce.com> */ namespace Magento\Framework\DB\Ddl; use Magento\Framework\DB\Adapter\AdapterInterface; class Table { /** * Types of …

1
什么时候schema_version和数据版本会不同?
例如,我的模块中没有安装脚本,我可以忽略文件中的setup_version标记吗module.xml? 在m1自动安装的模块中,现在首先抛出一个错误(如果我们不运行setup upgrade命令)。为什么我需要手动运行安装程序升级? 什么是场景schema_version和data_version会有所不同? 我观察到setup_module表中几乎所有记录都包含相同的值。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.