$entries) { if (!$schema->hasTable($table)) { continue; } $dbTable = $schema->getTable($table); $quotedTable = '"'.str_replace('"', '""', $table).'"'; foreach ($entries as $column => $description) { if ('_table' === $column) { $this->addSql(sprintf('COMMENT ON TABLE %s IS $_$%s$_$', $quotedTable, $description)); continue; } if (!$dbTable->hasColumn($column)) { continue; } $this->addSql(sprintf( 'COMMENT ON COLUMN %s.%s IS $_$%s$_$', $quotedTable, '"'.str_replace('"', '""', $column).'"', $description, )); } } } public function down(Schema $schema): void { foreach (ColumnCommentsCatalog::comments() as $table => $entries) { // Symetrie avec up() : on n'efface que les commentaires des tables // presentes (les tables des modules ulterieurs sont gerees par leur // propre migration). if (!$schema->hasTable($table)) { continue; } $quotedTable = '"'.str_replace('"', '""', $table).'"'; foreach ($entries as $column => $_) { if ('_table' === $column) { $this->addSql(sprintf('COMMENT ON TABLE %s IS NULL', $quotedTable)); continue; } $this->addSql(sprintf( 'COMMENT ON COLUMN %s.%s IS NULL', $quotedTable, '"'.str_replace('"', '""', $column).'"', )); } } } }