タグ付けされた質問 「setup-script」

2
Magento2:データベーススキーマのアップグレード方法
私はmagentoカスタムモジュールに取り組んでいSetup\InstallSchema.phpます、モジュールには以前にインストールされたファイルがあります。データベースフィールドをいくつか追加したInstallSchema.phpため、テーブル構造を更新したいが、テーブルには変更が適用されていない。 スキーマの変更をデータベーステーブルに適用するにはどうすればよいですか? プロセスcliコマンドを使用してスキーマを更新しましたが、成功しませんでした。 php bin/magento setup:db-schema:upgrade そして php bin/magento setup:upgrade

1
プログラムでテーブルに外部キーを追加する方法は?
新しいテーブルのセットを追加しようとしていますが、これらのテーブルをリンクする外部キーを追加しようとしています。オンラインで情報を探して探しましaddForeignKey()たが、何も見つかりませんでした。 見てVarien_Db_Adapter_Interface::addForeignKey()、Mage_Core_Model_Resource_Setup::getFkName()私は正しくセットアップ以下になったと思った ->addForeignKey( $installer->getFkName('namespace_module/shop', 'area_id', 'namespace_module/area','area_id'), $installer->getTable('namespace_module/shop'), 'area_id', $installer->getTable('namespace_module/area'), 'area_id', Varien_Db_Ddl_Table::ACTION_CASCADE, Varien_Db_Ddl_Table::ACTION_CASCADE ) しかし、例外は異なると言います Zend_Db_Exception Object ( [_previous:Zend_Exception:private] => [message:protected] => Undefined column "shop_locator_shop" [string:Exception:private] => [code:protected] => 0 [file:protected] => /Users/myname/Sites/site/www/lib/Varien/Db/Ddl/Table.php [line:protected] => 450 [trace:Exception:private] => Array ( [0] => Array ( [file] => /Users/myname/Sites/site/www/app/code/local/Namespace/Module/sql/namespace_module_setup/install-0.1.0.php [line] => 110 [function] …

5
インストールスクリプトでの$ installer v $ thisの使用
わかりました、インストールスクリプトを使用して、以下を使用する奇妙な規則があるようです: $installer = $this; これは完全に冗長であるため、私は本当に理解していません。 $this->スクリプト全体で使用しないのはなぜですか? この規則が存在する理由に関するアイデアはありますか?

2
アップグレードスクリプトでプログラムでストアビューを削除する
プログラムでストアビューを削除したい。を見るとMage_Adminhtml_System_StoreController::deleteStorePostAction()、これは非常に簡単です(コードを少し短くします)。 $model = Mage::getModel('core/store')->load($id); if ($model->getId() && $model->isCanDelete()) { $model->delete(); Mage::dispatchEvent('store_delete', array('store' => $model)); } このコードをデータアップグレードスクリプトに入れて、削除が自動的に実行されるようにします。 問題は、data/Magentoでアップグレードスクリプトを実行している間、そのエリアで設定されたイベントオブザーバのみを呼び出すことglobalです(Magento構造の更新とデータの更新を参照してください)。以下のような特定のオブザーバーenterprise_cmsやenterprise_searchイベントのためにstore_delete_afterで定義されているadminhtml、彼らが実行され得ることはありませんので、エリア。ストアビューの削除は、バックエンドで実行される削除のようには処理されません。 このような操作はどのように処理しますか?アップグレードスクリプトで追加のイベントエリアを自分で読み込みます(私はそれを恐れています)?アップグレードスクリプトでそのようなデータ変更を行うのではなく、魔法のスクリプトを神聖な隠された場所に置いて、手動で実行しますか?

1
Magento 2アップグレードスクリプトを作成して、カスタムモジュールテーブルに新しいフィールドを追加/更新します
カスタムテーブルに新しいフィールドを追加/更新するためのMagento 2(CE安定版)アップグレードスクリプト(カスタムモジュール内)の作成について、アイデアや提案はありますか? 「InstallSchema」について知っていますが、モジュールテーブルをアップグレードするための「UpgradeSchema」のようなものはありますか? 例を挙げて詳しく説明してください。

3
Magento 2「VARCHAR」タイプのフィールドをカスタムテーブルに追加
次の場所にある現在のコアデータベースアダプタファイル(Table.php)をご覧ください。 magento-2 / vendor / magento / framework / 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 { …

2
Magento 2:-カテゴリに選択属性を追加
select / dropdown属性をカテゴリに追加し、それをバックエンドに表示して、ストアの所有者が選択できるようにします。いくつかの調査の後、私は次のことを行うことがわかりました: Setupscriptを介して属性を作成する UIコンポーネント宣言を介してそれを含める だからこれは私がやったことです: public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { /** @var $eavSetup \Magento\Eav\Setup\EavSetup */ $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]); $eavSetup->addAttribute( \Magento\Catalog\Model\Category::ENTITY, 'attribute_code', [ 'type' => 'int', 'label' => 'Top Navigation CMS Block', 'input' => 'select', 'source' => 'Magento\Catalog\Model\Category\Attribute\Source\Page', 'required' => false, 'sort_order' => 10, 'global' => …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.