php 편집자 Yuzi가 오늘 GORM에서 Auto migration을 실행하기에 가장 좋은 시간을 여러분과 공유할 것입니다. GORM은 데이터베이스 작업을 단순화할 수 있는 강력한 Go 언어 ORM 라이브러리입니다. Auto migration은 GORM에서 제공하는 자동 마이그레이션 도구로, 모델 정의를 기반으로 데이터베이스 테이블 구조를 자동으로 생성할 수 있습니다. 그렇다면 GORM을 사용하여 자동 마이그레이션을 실행하기에 가장 좋은 시기는 언제입니까? 함께 살펴보겠습니다.
내가 본 대부분의 go/gorm 예제는 여기에 있는 gorm 문서를 포함하여 데이터베이스 연결을 연 후 즉시 auto migration을 호출하는 것을 보여줍니다. API 서비스의 경우 이는 모든 API 요청에 대해 비용이 많이 들고 필수 호출입니다. 따라서 API 서비스의 경우 auto migration을 일반 프로세스에서 제외하고 별도로 처리해야 한다고 생각합니다. 내 이해가 맞나요?
gorm 문서에서
... db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{}) if err != nil { panic("failed to connect database") } // Migrate the schema db.AutoMigrate(&Product{}) ...
모든 API 요청에서 이 문제가 발생하는 것은 아닙니다. 근처에도 안. 이는 앱이 실행될 때마다 발생하므로 기본적으로 main
中的数据库,并在那里运行 automigrate
에 연결하세요. 핸들러/서비스 패키지/필요한 모든 항목에 대한 종속성으로 연결을 전달합니다. http 핸들러가 거기에 액세스할 수 있습니다.
기본적으로는 다음과 같습니다.
으아악다음과 같이 패키지에 데이터베이스와 상호 작용하기 위한 코드를 포함합니다.
으아악그런 다음 핸들러를 합리적인 방식으로 구성하고 저장소(foo 패키지 콘텐츠라고도 함)를 제공하세요.
으아악업데이트된 버전의 애플리케이션을 배포할 때마다 main
函数都会调用 automigrate
애플리케이션은 데이터베이스에 지속적으로 다시 연결하거나 마이그레이션을 반복해서 처리하려고 시도하지 않고도 요청을 처리합니다.
애플리케이션이 요청별 설정을 실행해야 한다고 생각하는 이유가 무엇인지 잘 모르겠습니다. 특히 기본 기능(또는 main
에서 호출된 일부 기능)이 명시적으로 http 서버를 생성하고 특정 포트에서 요청을 수신한다는 점을 고려하면 더욱 그렇습니다. 요청 수신을 시작하기 전에 데이터베이스 연결 및 후속 마이그레이션을 처리해야 합니다. 요청을 처리하는 부분이 아닙니다...
위 내용은 GORM을 사용하여 자동 마이그레이션을 실행하기에 가장 좋은 시기는 언제입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!