>  기사  >  백엔드 개발  >  Go 코드의 값으로 새 열 채우기

Go 코드의 값으로 새 열 채우기

王林
王林앞으로
2024-02-06 11:27:03885검색

使用 Go 代码中的值回填新列

질문 내용

Go 애플리케이션 코드의 값으로 새 열을 백필하는 가장 좋은 방법은 무엇인가요? 이상적으로는 각 행을 반복하고 Go 코드를 호출하고 반환 값을 열 값으로 사용합니다. Go 코드는 상태 저장형입니다. 즉, 각각의 새 행에서 업데이트되는 데이터 구조에 따라 작동하고 이 정보를 기반으로 값을 계산합니다.

제가 생각하고 있는 것은 마이그레이션을 수행하고 새 열을 Null 허용으로 추가한 다음 마이그레이션 후에 Go 프로그램을 실행하여 행을 채우는 것입니다. 그러나 이 모든 작업을 한 번의 마이그레이션으로 수행할 수 있다면 더 좋을 것입니다. 특히 열이 처음부터 NULL이 아니어야 하기 때문입니다.

마이그레이션에는 Flyway를 사용합니다. 우리 데이터베이스는 Postgres 11.5입니다.


정답


이전을 통해 이러한 방식으로 새 열을 채울 수는 없습니다. 즉, 트랜잭션 내에서 한 단계로 완료됩니다. 대신 다음과 같은 것이 필요합니다:

  1. 타임스탬프 123 이전에 표시된 값이 있는 새 열의 행을 올바르게 처리하도록 앱을 업데이트하세요.
  2. 이전 시 null이 아닌 제약 조건과 기본 태그 값이 있는 새 열을 추가합니다.
  3. go 프로그램을 실행하여 타임스탬프 123 이전 행의 센티널 값을 적절한 값으로 업데이트합니다.

이 방법을 사용하려면 애플리케이션을 변경해야 하지만 유지 관리 기간은 필요하지 않습니다. 또한 마이그레이션 시 제약 조건이 충족되지 않아 마이그레이션이 실패하지 않도록 보장합니다.

위 내용은 Go 코드의 값으로 새 열 채우기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제