magento2中的InstallSchema脚本-installschema.php文件介绍

安装Magento2-命令行方式 命令行安装是Magento提供的从终端安装Magento 2的替代方法。以下是继续安装的步骤:打开终端并转到本地Magento安装的目录。下一步是在项目目录中运行Composer。以使用本地配置安装Magento。也就是说,这是一个长命令,您可以自定义它以匹配您的本地配置。现在您已经在本地机器上安装了Magento,您可以使用之前声明的URL访问Magento。访问前端的URL将是。来确认您在正确的目录中。命令行安装使用Magento 2中的命令行工具完成。访问管理面板的URL将为。 阅读详情

当我们希望向现有表添加新列或创建新表时,将使用InstallSchema脚本。此脚本仅在启用模块时运行。

一旦启用,模块就会在setup_module.schema_version表列下获得相应的条目。

此条目阻止InstallSchema脚本在模块的setup_version保持不变的任何后续setup:upgrade命令上运行。

让我们继续创建<MAGELICIOUS_DIR>/Core/Setup/InstallSchema.php文件,其中包含以下内容:

use\ Magento\ Framework\ Setup\ InstallSchemaInterface;
use Magento\ Framework\ Setup\ ModuleContextInterface;
use Magento\ Framework\ Setup\ SchemaSetupInterface;
class InstallSchema implements InstallSchemaInterface {
    public function install(SchemaSetupInterface $setup, ModuleContextInterface $context) {
        $setup - > startSetup();
        echo 'InstallSchema->install()'.PHP_EOL;
        $setup - > endSetup();
    }
}

使用$setup->startSetup();和$setup->endSetup();是大多数设置脚本中的常见做法。

这两种方法的实现涉及运行额外的环境设置步骤,例如设置SQL_MODE和FOREIGN_KEY_CHECKS,如在Magento\Framework\DB\Adapter\Pdo\Mysql下所示。

为了从中获得有用的东西,让我们继续使用实际创建我们的magelicious_core_log表的代码来替换echo行:


<?php
$table = $setup->getConnection()->newTable($setup->getTable('magelicious_core_log'))
    ->addColumn('entity_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null,
        ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true],
        'Entity ID')
   
    ->addColumn('severity_level', \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
    24, ['nullable' => false], 'Severity Level')
   
    ->addColumn('note', \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
    null, ['nullable' => false], 'Note')
   
    ->addColumn('created_at', \Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP, null,
    ['nullable' => false], 'Created At')
   
    ->setComment('Magelicious Core Log Table');
    $setup->getConnection()->createTable($table);

$setup->getConnection()为我们获取数据库适配器实例。从那时起,我们可以访问创建数据库表所需的方法。

当涉及到InstallSchema脚本时,大多数情况下,以下方法可以完成任务:

newTable:为新表检索DDL对象

addColumn:向表中添加列

addIndex:向表添加索引

addForeignKey:向表添加外键

comment:为表设置注释

createTable:从DDL对象创建表此处的magelicious_core_log表本质上是magelicious\core\Model\log简单模型后面的存储。

如果我们的模型是EAV模型,我们将使用相同的InstallSchema脚本来创建如下表:

log_entity

log_entity_datetime

log_entity_decimal

log_entity_int

log_entity_text

log_entity_varchar

然而,在EAV模型的情况下,实际的属性severity_level和note可能会通过InstallData脚本添加。

这是因为属性定义本质上是eav_attribute_*表下的数据,主要是eav_attribute表。

因此,属性是在InstallData和UpgradeData脚本内部创建的。

本内容转载自maxiaoke.com,magento专区。

如何安装magento2和测试数据 环境服务器环境https://devdocs.magento.com/guides/v2.2/install-gde/system-requirements-tech.htmlunix系统 比如redhat,CentOS, Ubuntu, Debian,max os等等内存 要2G以上(包括2G)Composer(最新稳定版本)web服务器,apache 2.2或2.4,nginx 1.x数据库 ... 阅读详情

相关推荐

magento2-install:CLI命令安装Magento 2.xx + Docker + Redis + Xdebug +示例数据

magento2安装 OSx脚本,允许用户使用自己选择的Magento版本/版本轻松启动完整的Magento 2.x +可选示例数据+ Docker + Redis + xDebug + Elasticsearch开发堆栈。 它包括定制开发和扩展开发所需的一切。 安装 下载magento2-install文件 将文件移动到/ usr / local / bin / magento2-install mv ./magento2-install /usr/local/bin 确保文件是可执行文件chmod +x /usr/local/bin/magento2-install 用法 打开一个新的终端窗口 发出命令magento2-install 回答任何互动式问题。 在第一个问题之后,按Enter键以接受其余问题的默认设置 归因 作者:肖恩·艾布拉姆森(Shawn Abramson) 组织

Magento 2中文手册教程 - Magento 2 初始化和引导

bootstrapping 概述 运行magento 2, 以下代码在index.php中执行: 引入 /app/bootstrap.php 执行必要的初始化例程,如错误处理,初始化自动加载,设置配置选项,设置默认时区,等等。创建一个实例 \Magento\Framework\App\Bootstrap. 创建一个Magento 2 的应用实例 (\Magento\Framework\Ap

小朱 5523

Dify+MCP Server打造禅道AI智能助手

Dify AI与MCP Server结合打造的禅道AI智能助手,实现了项目管理智能化升级。该方案通过大语言模型和自动化工作流,提供四大核心功能:1)自动化报表生成,支持多维度数据统计与可视化;2)禅道系统管理操作,简化产品/项目/任务管理流程;3)基于知识库的智能问答系统;4)数据库灵活查询与可视化输出。系统采用分层架构,通过MCP协议实现AI与数据源解耦,解决了传统禅道在数据孤岛、工具碎片化等问题。实际应用验证了其在用户管理、任务创建、Bug处理等场景的高效性,显著提升了项目管理效率。

oNew_Lifeo的博客 1708

Magento2 安装与使用笔记

单机安装: - 用composer 耐心安装 composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition src - 完毕后,选择性运行下列命令 -- 停用elastic search 模块 bin/magento module:disable {Magento_Elasticsearch,Magento_InventoryElasticsearch,M

bennybi的博客 1302

安装matlab_Matlab+yalmip+cplex安装教程及算例

数学建模/科研学习推荐学习软件:Matlab+yalmip+cplex安装教程及算例其实绝大多数本科生都是在用Matlab和LINGO求解优化问题,Matlab可以求解一般优化问题,但是当优化问题规模比较大或者在应对一些非线性问题时候,Matlab会出现求解时间长,求解效率低,甚至难以求解等问题。Matlab+yalmip+cplex是Matlab通过调用商业软件cplex求解,求解时间短,这里简...

weixin_28939637的博客 5005

DeepSeek Harness接入QQ实战:把DSH变成赛博群友

大模型应用正从单机问答走向多平台集成,如何将模型能力嵌入即时通讯工具成为工程实践的热点。消息接入、会话管理、插件扩展是构建智能群聊机器人的核心三要素。DeepSeek Harness(DSH)作为一款模型会话工作流管理工具,凭借多会话管理、模型调用编排以及灵活的插件机制,能够在QQ群聊场景中实现“接收消息→模型生成→回复推送”的完整闭环。本文从基础概念切入,详解DSH接入QQ的两种实现路线——外部API转发与原生插件适配,覆盖环境准备、启动调试、接口调用与性能观察,并给出常见问题排查清单。无论是本地AI助理

weixin_27427619的博客 1854

【转】Magento2 数据库操作

直接操作数据库 $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $resource = $objectManager->get('Magento\Framework\App\ResourceConnection'); $connection = $resource->getConnection(); $tableName = $resource->getTableName('employee');

sinolover的专栏 923

Multisim 14.0实战:从零搭建可调幅多波形信号发生器(附仿真文件)

本文详细介绍了如何在Multisim 14.0中从零搭建一个可调幅多波形信号发生器,涵盖方波、三角波和正弦波的生成原理与实现步骤。通过核心电路架构解析、关键参数设计及Multisim实战操作,帮助电子工程学习者和硬件工程师掌握信号发生器的设计与调试技巧,并提供仿真文件供实践验证。

nokia的博客 1073

advanced installer怎么执行sql文件_Magento2 怎么创建CRUD

首先我们将创建一张表。mageplaza_helloworld_post包含如下几列:post_id -唯一标识符name -名称url_key -网址post_content -帖子内容tags -帖子的标签status -状态featured_image -图片created_at -创建日期updated_at -更新日期在Magento2中创建模型,有如下几步骤步骤1:安装脚本步骤2:建立...

weixin_33171065的博客 223

计算图像哈希SHA-512

上述需要将lena.jpg放在当前目录下。

计算机视觉之光 960

uniapp - 实现苹果App打包上架App Store应用商店详细教程,详解Hbuilder打包编译ipa发布上传到苹果ios软件商店全流程,提供云打包/离线本地打包ios、申请IOS苹果证书方法

uni-app,苹果ios,苹果app,打包编译,appstore应用商店,ipa发布到软件商店,uniapp的app苹果应用商店上架,上架苹果APPStore,uniApp打包的ipa文件上传到商店,上架苹果商城,审核失败,被拒绝,UniApp打包ipa文件,上架iOSAppStore流程指南,最新详细教程最全,Hbuilder打包发布iosapp,苹果云打包上线全过程,云打包IPA并上传到商店,打包iOSipa文件后怎么发布到应用商店,苹果证书申请教程,ios证书申请,mac电脑,审核很久

🏆 前端领域优质创作者 1万+

Magento2实现CRUD操作功能

在Magento2.3.5中后端创建一个自定义模块来实现CRUD操作

weixin_43169845的博客 2322

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

伶俐角少儿编程 484

magento2使用InstallSchema类来创建新的数据库表

在Magento 2中,您可以使用InstallSchema类来创建新的数据库表。在您的模块目录中,找到YourCompany/YourModule/Setup目录,并创建InstallSchema.php文件。运行上述命令后,Magento将自动识别并执行您的InstallSchema类,并根据定义的架构创建新的数据库表。这只是一个基本的示例,您可以根据您的需要修改和扩展InstallSchema类来创建更复杂的表结构。完成上述更改后,您可以运行Magento的安装程序来执行脚本并创建新的表。

weixin_38938932的博客 613

066、AR 应用中虚拟物体漂移抖动?IMU 融合 + 光流追踪的视觉里程计优化方案

AR应用中虚拟物体漂移抖动优化方案 摘要:针对AR应用中虚拟物体漂移抖动问题,提出一种IMU融合与光流追踪的视觉里程计优化方案。关键点包括:1) 采用IMU预积分技术处理高频噪声,通过中值积分计算帧间相对运动约束;2) 使用金字塔LK光流追踪像素运动,通过中值偏差法剔除异常值;3) 构建10帧滑动窗口的紧耦合优化框架,将IMU预积分约束和光流重投影约束联合优化。实验表明,该方法有效解决了时间戳未对齐导致的"跳舞箭头"现象,在手机端实现稳定30fps的AR定位精度,漂移误差降低至厘米级。特别提醒:IMU与视觉

ai技术增长的博客 161

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

magento2 所需要php 扩展,magento2开发,你可能需要补充的知识点

magento2是个开源PHP电商系统,同类的系统一般需要有HTML、CSS、Javascript、PHP/Psr4/MVC、Mysql等基础,而使用magento2,也许需要先认识更多概念。Dependency Injection 依赖注入,简称DI老PHPer也会对这个很陌生,这是来自Java并且发扬光大的概念,它在magento2占有最重要的地位。它能很好处理OOP结构的依赖耦合问题。有了它...

weixin_33365244的博客 395

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Magento 2 安装数据表

Magento 2 安装数据表 第1步:安装脚本 首先,我们将为CRUD模型创建数据库表。为此,我们需要插入安装文件 app/code/Mageplaza/HelloWorld/Setup/InstallSchema.php   code: <?php /** * Created by PhpStorm. * User: jerryx...

weixin_30326741的博客 260

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

[转]Magento2开发教程 - 如何向数据库添加新表

本文转自:https://www.cnblogs.com/xz-src/p/6920365.html Magento 2具有特殊的机制,允许你创建数据库表,修改现有的,甚至添加一些数据到他们(如安装数据,已被添加在模块安装)。 这种机制允许这些变化可以在不同的设备之间传输。 关键的概念是,而不是做你能做的一次又一次重新安装系统时,手动SQL操作,开发人员创建一个安装(或升级)脚本包含数据。 每...

weixin_34080571的博客 376

magento php mysql_magento 资源配置 mysql4-install-0.1.0.php为什么没有执行

展开全部对于任何一32313133353236313431303231363533e59b9ee7ad9431333361326333个更新频繁的项目来说,保持开发环境和生产环境的数据库同步是件很头疼的事情。Magento提供了一套系统,用版本化的资源迁移脚本来解决这个问题。上一章,我们为 Helloworld Blogpost 创建了一个模型。我们直接通过SQL语句“CREATE TABLE”来...

weixin_35349247的博客 233

Magento2.x 插件 Module(模块)开发实战

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33895475的博客 393

magento 资源配置 mysql4-install-0.1.0.php为什么没有执行 ?

在“深入理解 magento " 的第五章 :资源配置"这一章节中,当我写好了资源安装脚本  mysql4-install-0.1.0.php, <?php echo 'Running this Upgrade: '.get_class($this)."\n \n"; die('Exit for now!'); ?> 以上是mysql4-install-0.1.0.php的代码 并且在

yy20071313的专栏 1619

magento php mysql_magento 资源配置 mysql4-install-0.1.0.php为什么没有执行 ?

在“深入理解 magento " 的第五章 :资源配置"这一章节中,当我写好了资源安装脚本mysql4-install-0.1.0.php,echo 'Running this Upgrade: '.get_class($this)."\n \n";die('Exit for now!');?>以上是mysql4-install-0.1.0.php的代码并且在config.xml写好了资源...

weixin_32192681的博客 151

magento2 代码增加customer attribute

setup/InstallSchema.php $setup->getConnection()->addColumn( $setup->getTable('customer_entity'), 'field1', [ 'type' => \Magento\Framework\...

weixin_33827731的博客 419

Magento2安装

步骤: 1、github上搜索magento2 选择一个releases版本,然后下载、解压https://github.com/magento/magento2/releases (目前2.3.7跟 Magento Release 2.4.3-p1已经过测试可以安装成功)。 2、将解压的项目放在容器对应的文件夹下,然后执行 composer install 安装依赖(时间很长大概3-5分钟左右)。 3、安装完成后进入项目bin目录下 ,执行: ./magento setup:install .

chen791652232的博客 3344
上一篇: magento2中模型model常用的方法
下一篇: magento2中的UpgradeSchema脚本-upgradeschema.php介绍
magento全栈开发
博客等级 码龄11年 195粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值