code: protected function initialize()
      {
          if ($this->connection->getSchemaManager()->tablesExist([$this->tableName])) {
              return; // @codeCoverageIgnore
          }
  
          $schema = new Schema();
  
          $table = $schema->createTable($this->tableName);
          $table->addColumn('source_name', 'string', ['length' => 255]);
          $table->addColumn('rate_value', 'float', ['precision' => 10, 'scale' => 4]);
          $table->addColumn('currency_code', 'string', ['length' => 3]);
          $table->addColumn('rate_type', 'string', ['length' => 255]);
          $table->addColumn('rate_date', 'date', []);
          $table->addColumn('base_currency_code', 'string', ['length' => 3]);
          $table->addColumn('created_at', 'datetime', []);
          $table->addColumn('modified_at', 'datetime', []);
  
          $table->setPrimaryKey(['currency_code', 'rate_date', 'rate_type', 'source_name']);
  
          $this->connection->exec($schema->toSql($this->connection->getDatabasePlatform())[0]);
      }
docs: Initialize table schema where rates would be stored.