37 private function assertDefinitionEqual(
Column $column,
Column $referenceColumn)
46 return $this->assertUnsigned($column, $referenceColumn) &&
47 $this->assertIntegersEquals($column, $referenceColumn) &&
48 $this->assertStringBinariesEqual($column, $referenceColumn);
56 private function assertUnsigned(
Column $column,
Column $referenceColumn)
62 $column->isUnsigned() !== $referenceColumn->isUnsigned()
75 private function assertStringBinariesEqual(Column $column, Column $referenceColumn)
81 if ($column instanceof StringBinary &&
82 $column->getLength() !== $referenceColumn->getLength()
95 private function assertIntegersEquals(Column $column, Column $referenceColumn)
100 if ($column instanceof Integer &&
101 $column->getPadding() !== $referenceColumn->getPadding()
114 $message =
'Column definition "%s" and reference column definition "%s" are different in tables "%s" and "%s"';
117 foreach (
$table->getReferenceConstraints() as $reference) {
118 $column = $reference->getColumn();
119 $referenceColumn = $reference->getReferenceColumn();
121 if (!$this->assertDefinitionEqual($column, $referenceColumn)) {
123 'column' => $column->getName(),
124 'message' => sprintf(
127 $referenceColumn->getName(),
128 $column->getTable()->getName(),
129 $referenceColumn->getTable()->getName()