hasTable('mail_action_step')) { return null; } $table = $schema->createTable('mail_action_step'); $table->addColumn('id', Types::INTEGER, [ 'autoincrement' => true, 'notnull' => true, ]); $table->addColumn('name', Types::STRING, [ 'notnull' => true, 'length' => 64, ]); $table->addColumn('order', Types::INTEGER, [ 'notnull' => true, ]); $table->addColumn('action_id', Types::INTEGER, [ 'notnull' => true, ]); $table->addColumn('mailbox_id', Types::INTEGER, [ 'notnull' => false, ]); $table->addColumn('tag_id', Types::INTEGER, [ 'notnull' => false, ]); $table->setPrimaryKey(['id']); if ($schema->hasTable('mail_actions')) { $table->addForeignKeyConstraint( $schema->getTable('mail_actions'), ['action_id'], ['id'], [ 'onDelete' => 'CASCADE', ] ); } if ($schema->hasTable('mail_mailboxes')) { $table->addForeignKeyConstraint( $schema->getTable('mail_mailboxes'), ['mailbox_id'], ['id'], [ 'onDelete' => 'SET NULL', ] ); } if ($schema->hasTable('mail_tags')) { $table->addForeignKeyConstraint( $schema->getTable('mail_tags'), ['tag_id'], ['id'], [ 'onDelete' => 'SET NULL', ] ); } return $schema; } }