Migx Modx - How to generate/make a proper Schema

I am practicing with Migx for many CMPs and every time I have to struggle with The Schema.
I want to know how to generate proper schema for my custom database tables for my CMPs ?
Is there any instructions on web or elsewhere where I can learn specially for Modx Migx schema ?
I stuck every time on schema part and I have to copy paste from tutorials docs but I want to know the proper way…

Like this from officials docs -

<?xml version="1.0" encoding="UTF-8" ?>

<model package="mygallery" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" version="1.1">

    <object class="myGallery" table="migx_gallery" extends="xPDOSimpleObject">

        <field key="title" dbtype="varchar" precision="255" phptype="string" null="false" default="" index="index" />

        <field key="description" dbtype="text" phptype="string" index="fulltext" />

        <field key="resource_id" dbtype="int" precision="11" phptype="integer" null="false" default="0" />

        <field key="resource_ids" dbtype="text" phptype="string" null="false" default="" />

        <field key="image" dbtype="varchar" precision="255" phptype="string" null="false" default="" />

        <field key="extended" dbtype="text" phptype="json" null="false" default="" />

        <field key="pos" dbtype="int" precision="10" phptype="integer" null="false" default="0" />

        <field key="published" dbtype="tinyint" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" />

        <field key="createdby" dbtype="int" precision="10" phptype="integer" null="false" default="0" />

        <field key="createdon" dbtype="datetime" phptype="datetime" null="true" />

        <field key="editedby" dbtype="int" precision="10" phptype="integer" null="false" default="0" />

        <field key="editedon" dbtype="datetime" phptype="datetime" null="true" />

        <field key="deleted" dbtype="tinyint" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" />

        <field key="deletedon" dbtype="datetime" phptype="datetime" null="true" />

        <field key="deletedby" dbtype="int" precision="10" phptype="integer" null="false" default="0" />

        <field key="publishedon" dbtype="datetime" phptype="datetime" null="true" />

        <field key="publishedby" dbtype="int" precision="10" phptype="integer" null="false" default="0" />

        <aggregate alias="Resource" class="modResource" local="resource_id" foreign="id" cardinality="one" owner="foreign" />

        <aggregate alias="Creator" class="modUser" local="createdby" foreign="id" cardinality="one" owner="foreign" />

    </ object >

</ model >

Please help me…

1 Like

It’s really just dictating what fields and field types you need available for your package. If you know you need a name, telephone number and a message for example then you can say with some confidence you’ll need three fields.

You might benefit from doing a quick MySQL crash course though :slight_smile:

2 Likes

Take a look at the following articles in the docs to get a good understanding of how to define and use a schema in MODX.

BTW, to properly format a code snippet here, begin and end it with three backticks.

2 Likes

Oh yeah Mysql. I know it. But I think its little bit different here… I have doubts… I think you just cleared…
Thanks :slight_smile:

1 Like

Thanks for the links. Going to read all those stuffs. :slight_smile:

1 Like

I fixed up his formatting here.

3 Likes