blob: 308c3204e2726029c6ae82a99eef852ad18996eb [file] [log] [blame] [view]
# seata-go-samples
## How to run samples
1. Start the seata-server service with the docker file under the /dockercomposer folder
```shell
git clone https://github.com/seata/seata-go-samples.git
```
```shell
cd dockercompose
```
```shell
docker-compose -f docker-compose.yml up -d seata-server
```
2. Start and run a sample, for example let's run a basic distributed transaction sample of AT
```shell
cd at/basic
```
```shell
go run .
```
### Customize mysql connection configurations
The default mysql connection configuration is suitable with dockercompose/docker-compose.yml.
You can also customize it by system environment.
System Env Supported:
1. MYSQL_HOST
2. MYSQL_PORT
3. MYSQL_USERNAME
4. MYSQL_PASSWORD
5. MYSQL_DB
## How to use go mod replace to test samples for new PR
1. Modify the seata-go dependency version to v0.0.0-incompatible, and remove the version number if it exists in the
original dependency path.
```
//github.com/seata/seata-go v1.0.3
github.com/seata/seata-go v0.0.0-incompatibl
```
2. Find the absolute or relative path to your local code.
```
/Users/mac/Desktop/GO/seata-go
../seata-go
```
3. Add the replace module to the go.mod file and change it to the local code path.
```
github.com/seata/seata-go => ../seata-go
```
4. Synchronization dependencies.
```shell
go mod tidy
```
5. Run the sample test code.
## How to use go workspace to test samples for new PR (Recommended)
You can use your local project forked to test new pr that haven't merged into github.com/seata/seata-go.
1. Make sure your go version is 1.18 or later.
2. Fork and download two projects (seata-go and seata-go-samples), and put them into a same local directory.
For examples:
```text
/Users/xxx/code/github.com/yourid/seata-go
/Users/xxx/code/github.com/yourid/seata-go-samples
```
3. Execute go work init command in projects root directory.
```shell
cd /Users/xxx/code/github.com/yourid
```
```shell
go work init
```
You will find a go.work file in /Users/xxx/code/github.com/yourid.
4. Add seata-go and seata-go-samples into the same go workspace.
```shell
go work use ./seata-go
```
```shell
go work use ./seata-go-samples
```
Now, the content of go.work file is as follows.
```text
go 1.19
use (
./seata-go
./seata-go-samples
)
```
5. Run the sample test code in seata-go-samples.