# Create an entity on mautic for a plugin

**URL:** <https://forum.mautic.org/t/create-an-entity-on-mautic-for-a-plugin/21590>\
**Category:** General Discussion\
**Tags:** development, integrations-plugins\
**Created:** [November 12, 2021, 2:34pm UTC](https://forum.mautic.org/t/create-an-entity-on-mautic-for-a-plugin/21590 "2021-11-12T14:34:36Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ferdinandog](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/ferdinandog/32/637_2.png) [@ferdinandog](https://forum.mautic.org/u/ferdinandog)\
**Post date:** [November 12, 2021, 2:34pm UTC](https://forum.mautic.org/t/create-an-entity-on-mautic-for-a-plugin/21590/1 "2021-11-12T14:34:36Z")

</div>

Hello everyone.  
I have created a simple starting pulgin. I am now stuck creating my mautic default database table.  
I have created my entity and my repository, on symfony I have a command to create the table, but on mautic how is it created? I tried updating the plugin but nothing just isn’t created. Suggestions?

---

<div class="post-metadata">

**Author:** ![ferdinandog](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/ferdinandog/32/637_2.png) [@ferdinandog](https://forum.mautic.org/u/ferdinandog)\
**Post date:** [November 12, 2021, 4:48pm UTC](https://forum.mautic.org/t/create-an-entity-on-mautic-for-a-plugin/21590/2 "2021-11-12T16:48:17Z")

</div>

I created an entity based on symfony knowledge but sending the command to create the table with columns gives me this error.

$ php bin/console doctrine:schema:update --dump-sql

In MappingException.php line 56:

No identifier/primary key specified for Entity “MauticPlugin\MauticDemoBundle\Entity\Demo” sub class of “Mautic\CoreBundle\Entity\CommonEntity”. Every Entity must have an identifier/primary key.

The key id is set like this →

class Demo extends CommonEntity

{

```
/** @Id @Column(type="integer") */

private $id;

/**

 * @var string

 * @ORM\Column(type='string' , lenght='255)

 */

private $name;

/**

 * @var string

 * @ORM\Column(type='string' , lenght='255)

 */

private $surname;

 /**

 * @param ORM\ClassMetadata $metadata

 */

 public static function loadMetadata(ORM\ClassMetadata $metadata): void

 {

    $builder = new ClassMetadataBuilder($metadata);

    $builder

        ->setTable('demo')

        ->setCustomRepositoryClass(DemodRepository::class);

        // $builder->addIdColumns();

        $builder

            ->createField('name' , 'string')

            ->columnName('name')

            ->nullable(false);

        $builder

            ->createField('surname', 'string')

            ->columnName('surname')

            ->nullable(false);

            }

            /**

            * @return mixed

            */

            public function getId(): ?int

            {

                return $this->id;

            }

           

            /**

            * @return mixed

            */

            public function getName(): ?string

            {

                return $this->name;

            }

       

            /**

            * @param mixed $name

            *

            * @return Demo

            */

            public function setName(string $name): self

            {

                $this->name = $name;

       

                return $this;

            }

           

            /**

            * @return mixed

            */

            public function getSurname(): ?string

            {

                return $this->surname;

            }

       

            /**

            * @param mixed $name

            *

            * @return Demo

            */

            public function setSurname(string $surname): self

            {

                $this->brand = $surname;

       

                return $this;

            }

        }
```
