首先,在其中创建db_schema.xml
文件/RH/Helloworld/etc
并编写以下代码:
<?xml version="1.0"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd">
<table name="rh_helloworld" resource="default" engine="innodb" comment="RH Helloworld">
<column xsi:type="smallint" name="id" padding="6" unsigned="false" nullable="false" identity="true" comment="ID"/>
<column xsi:type="varchar" name="author_name" nullable="false" length="25" comment="Name"/>
<column xsi:type="varchar" name="email" nullable="false" length="25" comment="Email"/>
<column xsi:type="varchar" name="description" nullable="false" length="255" comment="Descrition"/>
<constraint xsi:type="primary" referenceId="PRIMARY">
<column name="id"/>
</constraint>
</table>
</schema>
<table> .. </table>
=“用于创建和设置表名称”
<column> .. </column>
=“用于创建和设置表的列”
<constraint> .. </constraint>
=“用于设置约束,例如主键,外键,唯一键等。
在运行upgrade命令之前,您需要db_whitelist_schema.json
通过运行以下命令将架构添加到文件中:
php bin/magento setup:db-declaration:generate-whitelist --module-name=RH_Helloworld
现在,db_whitelist_schema.json
将在/RH/Helloworld/etc
文件夹中创建文件。
现在开始 php bin/magento s:up
表将在数据库内部创建。
=>如果要重命名列,则需要db_schema.xml
在适当的列中的以下行中进行设置:
<column xsi:type="varchar" name="customer_email" onCreate="migrateDataFrom(email)" on_update="false" nullable="false" default="" comment="Customer Email"/>
在这里,名称=“新列名称”,onCreate =“ migrateDataFrom()” =“旧列名称”
=>如果要删除表,则可以从xml文件中删除整个表节点,也可以将Disabled属性设置为true,如下面的代码所示db_schema.xml
:
<table name="rh_helloworld" resource="default" engine="innodb" comment="RH Helloworld" disabled="true">
..
</table>
有关更多详细信息,您可以在此处检查。
希望对您有帮助。