【问题标题】:How to add a new table to magento database如何向magento数据库添加新表
【发布时间】:2011-01-14 12:08:27
【问题描述】:

我正在使用 magento 1.4.2.0,我需要向我的 magento 数据库添加一个新表,它适用于我的一些自定义 cms 页面,我需要将数据添加到数据库并需要获取该数据并将其显示在cms页面。请逐步解释我,因为我对magento很陌生。

【问题讨论】:

    标签: php mysql magento


    【解决方案1】:

    你必须在你的模块中使用一个安装文件:查看Alan Storm's comprehensive post

    【讨论】:

      【解决方案2】:

      使用magento模块创建表在sql文件夹mysql4-install-1.0.0.php文件中写入以下代码。

      $installer = $this;
      $table = $installer->getConnection()->newTable($installer->getTable(''))
      ->addColumn('news_id',Varien_Db_Dbl_Table::INTEGER_TYPE,null,array('unsigned'=>true,'identity'=>true,'nullable'=>false,'primary'=>true),'Entity Id')
      ->addColumn('title',Varien_Db_Dbl_Table::TYPE_TEXT,255,array('nullable'=>true),'Title')
      ->addColumn('author',Varien_Db_Dbl_Table::TYPE_TEXT,63,array('nullable'=>true,'default'=>'null'),'Author')
      ->addColumn('content',Varien_Db_Dbl_Table::TYPE_TEXT,'2M',array('nullable'=>true,'default'=>'null'),'Content')
      ->addColumn('image',Varien_Db_Dbl_Table::TYPE_TEXT,null,array('nullable'=>true,'default'=>'null'),'News Image Media Path')
      ->addColumn('publised_at',Varien_Db_Dbl_Table::TYPE_DATE,null,array('nullable'=>true,'default'=>'null'),'Published Date')
      ->addColumn('created_at',Varien_Db_Dbl_Table::TYPE_TIMESTAMP,null,array('nullable'=>true,'default'=>'null'),'Creation Time')
      ->addIndex($installer->getIdxName($installer->getTable(''),array('publised_at'),Varien_Db_Adapter_Interface::INDEX_TYPE_INDEX),array('publised_at'),array('type'=>Varien_Db_Adapter_Interface::INDEX_TYPE_INDEX))->SetComment('News Item');
      $installer->getConnection->createTable($table);

      【讨论】:

        【解决方案3】:
        class InstallSchema implements \Magento\Framework\Setup\InstallSchemaInterface
        {
        
            public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
            {
                $setup->startSetup();
                $table = $setup->getConnection()
                ->newTable($setup->getTable('magento_pincode_pincode'))
                ->addColumn(
                            'pincode_id',
                            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
                            null,
                            [
                                'identity' => true,
                                'nullable' => false,
                                'primary'  => true,
                                'unsigned' => true
                            ],
                            'ID'
                        )->addColumn(
                            'pincode',
                            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
                            null,
                            ['nullable' => false],
                            'Pincode'
                        )->addColumn(
                            'status',
                            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
                            255,
                            ['nullable' => false],
                            'Status'
                        )->addColumn(
                            'created_at',
                            \Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
                            null,
                            ['nullable' => false, 'default' => \Magento\Framework\DB\Ddl\Table::TIMESTAMP_INIT],
                            'Created At'
                        )->addColumn(
                            'updated_at',
                            \Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
                            null,
                            ['nullable' => false, 'default' => \Magento\Framework\DB\Ddl\Table::TIMESTAMP_INIT_UPDATE],
                            'Updated At');
                    $setup->getConnection()->createTable($table);
        
                    $setup->endSetup();
        
            }
        }
        

        【讨论】:

        • 1.在模块中创建一个安装文件夹 2.在安装文件夹中创建 installschema 文件 3.触发此命令 php bin/magento setup:upgrade 4.如果此命令后未创建表,则打开安装模块文件夹显示表,如“%setup%”; 5.如果找到我们模块的条目,则从 setup_module where module='Magento_CreateAPI' 中删除该条目删除; 6.再次升级php bin/magento setup:upgrade 7.然后再次检查表是否创建
        猜你喜欢
        • 1970-01-01
        • 2019-09-28
        • 1970-01-01
        • 1970-01-01
        • 2010-12-18
        • 2018-05-17
        • 1970-01-01
        • 1970-01-01
        • 2016-09-27
        相关资源
        最近更新 更多