반응형
원칙이 계산/생성된 열을 삭제하지 않도록 하는 방법
Symfony 프로젝트에 MariaDB를 사용하고 있으며 다음과 같은 계산 열을 설정했습니다.
ALTER TABLE history_event ADD quote_status_change SMALLINT AS (JSON_VALUE(payload, '$.change_set.status[1]'));
를 사용하여 원칙 이행을 실행할 때bin/console doctrine:schema:update
의 어디에도 표시되지 않기 때문에 계산 컬럼이 드롭됩니다.HistoryEvent
엔티티 클래스
마이그레이션을 실행할 때 Principle이 계산 열을 삭제하지 않도록 하려면 어떻게 해야 합니까?
이를 OnSchemaColumnDefinition Event를 사용하여 원칙 2.10에서 해결했습니다.내 코드는 다음과 같습니다.
public function onSchemaColumnDefinition(SchemaColumnDefinitionEventArgs $eventArgs)
{
if ($eventArgs->getTable() === 'my_table') {
if (!in_array($eventArgs->getTableColumn()['field'], ['id', 'column_1', 'column_2'])) {
$eventArgs->preventDefault();
}
}
}
저는 Symfony 4.2를 사용하고 있기 때문에 이벤트 청취자 클래스를 다음과 같이 설정합니다.
운이 없을 수도 있습니다.오픈 기능 요청이 있습니다만, 아직 구현되지 않았습니다.https://github.com/doctrine/doctrine2/issues/6434
언급URL : https://stackoverflow.com/questions/50813814/how-to-prevent-doctrine-from-dropping-computed-generated-column
반응형
'programing' 카테고리의 다른 글
JavaScript 이벤트 클릭을 트리거하려면 어떻게 해야 합니까? (0) | 2023.01.15 |
---|---|
TextArea에서 줄 바꿈 (0) | 2023.01.15 |
MySQL에서 인덱스 크기를 확인하는 방법 (0) | 2023.01.15 |
My Vue.js Vuex 스토어에는 GET 요청을 하는 두 가지 작업이 있습니다.두 번째 액션이 작동하려면 첫 번째 액션의 응답이 필요합니다.어떻게 하는 거야? (0) | 2023.01.15 |
Panda 시리즈 전체를 예쁘게 인쇄 / Data Frame (0) | 2023.01.15 |