db_schema.xml 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?xml version="1.0"?>
  2. <!--
  3. /**
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. -->
  8. <schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  9. xsi:noNamespaceSchemaLocation="urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd">
  10. <table name="queue" resource="default" engine="innodb" comment="Table storing unique queues">
  11. <column xsi:type="int" name="id" padding="10" unsigned="true" nullable="false" identity="true"
  12. comment="Queue ID"/>
  13. <column xsi:type="varchar" name="name" nullable="true" length="255" comment="Queue name"/>
  14. <constraint xsi:type="primary" referenceId="PRIMARY">
  15. <column name="id"/>
  16. </constraint>
  17. <constraint xsi:type="unique" referenceId="QUEUE_NAME">
  18. <column name="name"/>
  19. </constraint>
  20. </table>
  21. <table name="queue_message" resource="default" engine="innodb" comment="Queue messages">
  22. <column xsi:type="bigint" name="id" padding="20" unsigned="true" nullable="false" identity="true"
  23. comment="Message ID"/>
  24. <column xsi:type="varchar" name="topic_name" nullable="true" length="255" comment="Message topic"/>
  25. <column xsi:type="longtext" name="body" nullable="true" comment="Message body"/>
  26. <constraint xsi:type="primary" referenceId="PRIMARY">
  27. <column name="id"/>
  28. </constraint>
  29. </table>
  30. <table name="queue_message_status" resource="default" engine="innodb"
  31. comment="Relation table to keep associations between queues and messages">
  32. <column xsi:type="bigint" name="id" padding="20" unsigned="true" nullable="false" identity="true"
  33. comment="Relation ID"/>
  34. <column xsi:type="int" name="queue_id" padding="10" unsigned="true" nullable="false" identity="false"
  35. comment="Queue ID"/>
  36. <column xsi:type="bigint" name="message_id" padding="20" unsigned="true" nullable="false" identity="false"
  37. comment="Message ID"/>
  38. <column xsi:type="timestamp" name="updated_at" on_update="true" nullable="false" default="CURRENT_TIMESTAMP"
  39. comment="Updated At"/>
  40. <column xsi:type="smallint" name="status" padding="5" unsigned="true" nullable="false" identity="false"
  41. comment="Message status in particular queue"/>
  42. <column xsi:type="smallint" name="number_of_trials" padding="5" unsigned="true" nullable="false"
  43. identity="false" default="0" comment="Number of trials to processed failed message processing"/>
  44. <constraint xsi:type="primary" referenceId="PRIMARY">
  45. <column name="id"/>
  46. </constraint>
  47. <constraint xsi:type="foreign" referenceId="QUEUE_MESSAGE_STATUS_MESSAGE_ID_QUEUE_MESSAGE_ID"
  48. table="queue_message_status" column="message_id" referenceTable="queue_message" referenceColumn="id"
  49. onDelete="CASCADE"/>
  50. <constraint xsi:type="foreign" referenceId="QUEUE_MESSAGE_STATUS_QUEUE_ID_QUEUE_ID" table="queue_message_status"
  51. column="queue_id" referenceTable="queue" referenceColumn="id" onDelete="CASCADE"/>
  52. <constraint xsi:type="unique" referenceId="QUEUE_MESSAGE_STATUS_QUEUE_ID_MESSAGE_ID">
  53. <column name="queue_id"/>
  54. <column name="message_id"/>
  55. </constraint>
  56. <index referenceId="QUEUE_MESSAGE_STATUS_STATUS_UPDATED_AT" indexType="btree">
  57. <column name="status"/>
  58. <column name="updated_at"/>
  59. </index>
  60. </table>
  61. </schema>