public function getSchemaDiff() { $diff = new SchemaDiff(); $comparator = new Comparator(); $tableDiff = $comparator->diffTable($this->conn->getSchemaManager()->createSchema()->getTable($this->tableName), $this->schema->getTable($this->tableName)); if (false !== $tableDiff) { $diff->changedTables[$this->tableName] = $tableDiff; } return $diff; }
public function initialize(array $options = []) { $tableName = $this->options[self::OPTION_TABLENAME]; if (!method_exists($this->connection, 'getSchemaManager')) { throw new \RuntimeException('The provided connection does not support query building, please choose a different connection type ' . 'that does'); } if ($this->connection->getSchemaManager()->tablesExist([$tableName])) { return; } $table = new Table($tableName); $table->addColumn('id', Type::STRING, ['length' => '36']); $table->addColumn('stream_id', Type::STRING, ['length' => '36']); $table->addColumn('sequence', Type::BIGINT); $table->addColumn('payload', Type::TEXT); $table->addColumn('emitted_at', Type::DATETIME); $table->setPrimaryKey(['id']); $table->addIndex(['stream_id']); $table->addUniqueIndex(['stream_id', 'sequence']); $this->connection->getSchemaManager()->createTable($table); }