>  기사  >  백엔드 개발  >  Go Goose 거래는 언제 제출되나요?

Go Goose 거래는 언제 제출되나요?

王林
王林앞으로
2024-02-08 21:54:20562검색

go goose 事务什么时候提交?

php 편집자 Yuzai는 "go goose 트랜잭션은 언제 제출되나요?"라는 일반적인 질문에 답하기 위해 왔습니다. Go 언어에서 트랜잭션 제출은 특정 데이터베이스 드라이버에 따라 다릅니다. 일반적으로 트랜잭션 커밋 작업을 수행할 때 데이터베이스는 현재 트랜잭션의 모든 수정 작업을 한 번에 데이터베이스에 제출합니다. 이는 트랜잭션의 원자성을 보장합니다. 즉, 모든 커밋이 성공하거나 모든 롤백이 실패합니다. 따라서 트랜잭션 제출 시점은 트랜잭션의 시작이나 끝이 아닌 트랜잭션 커밋 작업이 수행되는 시점입니다. 구체적인 사용 방법은 관련 데이터베이스 드라이버 설명서를 참조하세요.

질문 내용

  • 아래와 같이 tx에서 실행해야 하는 코드가 있습니다
  • 공식 문서 go goose
  • 에 설명된 대로 go sql 마이그레이션을 생성했습니다.

제 질문은:

  • 이러한 트랜잭션은 실제로 언제 commited 데이터베이스에 커밋되나요?
  • 이전을 제출하려면 tx.commit()를 사용해야 했습니다. 이동 중인 마이그레이션 파일은 다음과 같습니다.
으아악

down 부분 이후에는 위의 마이그레이션을 실행할 수 없습니다. 실행하면 errtxdone이 표시되기 때문입니다(출처). 여전히 go migration up00002를 여러 번 실행하고 싶습니다(테스트용). 어떻게 해야 하나요? 내가 여기서 뭘 잘못하고 있는 걸까? down 部分之后运行上述迁移,因为当我运行它们时,我得到了 errtxdone (源)。我仍然想多次运行 go 迁移 up00002 (用于测试)。我怎样才能做到这一点?我在这里做错了什么?

解决方法

因此,只需浏览他们的文档此处即可显示提交已经在 AddMigrations 调用中发生 - 这是使用 ofc 事务,由 go goose

해결 방법

그러므로 여기 문서를 찾아보면 커밋이 이미 있음을 알 수 있습니다. AddMigrations 호출 - 이는 ofc 트랜잭션을 사용하여

내부적으로 처리됩니다. 아주 좋습니다 :)

--no-transaction选项,我们可以使用它来完全控制dbSQL의 경우에도 마찬가지입니다.

여기🎜🎜에서 볼 수 있듯이 🎜pkg는 🎜 개체도 제공합니다. 대단해요! 🎜

위 내용은 Go Goose 거래는 언제 제출되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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