Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
InstallSchema.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
13 
18 {
25  {
27 
28  $installer->startSetup();
29 
30  //Create first table
31  $table = $installer->getConnection()
32  ->newTable($installer->getTable('reference_table'))
33  ->addColumn(
34  'smallint_ref',
35  \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
36  3,
37  ['primary' => true, 'identity' => true, 'nullable' => false],
38  'Smallint'
39  )
40  ->setComment('Reference table');
41  $installer->getConnection()->createTable($table);
42 
43  $testTable = $installer->getConnection()->newTable($installer->getTable('test_table'))
44  ->addColumn(
45  'smallint',
46  \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
47  2,
48  ['nullable' => true, 'default' => 0],
49  'Smallint'
50  )
51  ->addColumn(
52  'bigint',
53  \Magento\Framework\DB\Ddl\Table::TYPE_BIGINT,
54  10,
55  ['nullable' => true, 'unsigned' => false, 'default' => 0],
56  'Bigint'
57  )
58  ->addColumn(
59  'float',
60  \Magento\Framework\DB\Ddl\Table::TYPE_FLOAT,
61  null,
62  ['default' => 0],
63  'Float'
64  )
65  ->addColumn(
66  'date',
67  \Magento\Framework\DB\Ddl\Table::TYPE_DATE,
68  null,
69  [],
70  'Date'
71  )
72  ->addColumn(
73  'timestamp',
74  \Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
75  null,
76  ['default' => \Magento\Framework\DB\Ddl\Table::TIMESTAMP_INIT_UPDATE],
77  'Timestamp'
78  )
79  ->addColumn(
80  'mediumtext',
81  \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
82  11222222,
83  [],
84  'Mediumtext'
85  )
86  ->addColumn(
87  'varchar',
88  \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
89  254,
90  ['nullable' => true],
91  'Varchar'
92  )
93  ->addColumn(
94  'boolean',
95  \Magento\Framework\DB\Ddl\Table::TYPE_BOOLEAN,
96  1,
97  [],
98  'Boolean'
99  )
100  ->addIndex(
101  $installer->getIdxName('test_table', ['smallint', 'bigint']),
102  ['smallint', 'bigint'],
104  )
105  ->addIndex(
106  $installer->getIdxName('test_table', ['bigint']),
107  ['bigint']
108  )
109  ->addForeignKey(
110  $installer->getFkName(
111  $installer->getTable('test_table'),
112  'smallint',
113  'reference_table',
114  'smallint_ref'
115  ),
116  'smallint',
117  $installer->getTable('reference_table'),
118  'smallint_ref',
120  )
121  ->setComment('Test Table');
122  $installer->getConnection()->createTable($testTable);
123 
124  $installer->endSetup();
125  }
126 }
$setup
Definition: trigger.php:12
$table
Definition: trigger.php:14
install(SchemaSetupInterface $setup, ModuleContextInterface $context)