I follow this tutorial: https://www.pierrefay.com/en/magento2-training/install-upgrade-setup.html but i didn't add table into database, i had do anything in tutorial. From here: Go to /app/code/Pfay/Contacts/etc/module.xml and verify that the version of our module magento2 is 0.1.0.
<module name="Pfay_Contacts" setup_version="0.1.0"> Creating our installation process for magento2 Now we will create the file that will be launched during the installation of our module, under magento it is always called in the same way: InstallSchema and when called it executes the install function. Create the file /app/code/Pfay/Contacts/Setup/InstallSchema.php like this:
<?php namespace Pfay\Contacts\Setup; use Magento\Framework\Setup\InstallSchemaInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\SchemaSetupInterface; /** * @codeCoverageIgnore */ class InstallSchema implements InstallSchemaInterface { /** * @param SchemaSetupInterface $setup * @param ModuleContextInterface $context * @throws \Zend_Db_Exception */ public function install(SchemaSetupInterface $setup, ModuleContextInterface $context) { $setup->startSetup(); /** * Create table 'pfay_contacts' */ if (!$setup->getConnection()->isTableExists($setup->getTable('pfay_contacts'))) { $table = $setup->getConnection() ->newTable($setup->getTable('pfay_contacts')) ->addColumn( 'pfay_contacts_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 'Contacts ID' ) ->addColumn( 'name', \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 100, ['nullable' => false, 'default' => 'simple'], 'Name' ) ->addColumn( 'email', \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 100, ['nullable' => false, 'default' => 'simple'], 'Email' ) ->setComment('Pfay Contacts Table') ->setOption('type', 'InnoDB') ->setOption('charset', 'utf8'); $setup->getConnection()->createTable($table); } $setup->endSetup(); } } In this setup, we create the table in database that will be used for the continuation of the tutorials.
You notice the getTable function that just makes sure to format the table name, no need to declare pfay_contacts elsewhere (as on magento1). This creates the table with the newTable function and adds columns with addColumn , a comment with setComment And we specify options linked to the database with setOption The table is then stored in the database from the connection and the createTable function.
As for magento1, an installer starts with startSetup and ends with endSetup
Enable the module, update the tables and assign the rights to the cache Via the following commands:
php bin/magento module:enable Pfay_Contacts php bin/magento setup:upgrade chmod 777 -R var/ Can anyone help me with this?
setup:upgradeand then runmodule:enablecommands