From b84e556b867d8b677c7deafff8cb04316c91274d Mon Sep 17 00:00:00 2001 From: Dat Dao Date: Mon, 3 Jun 2024 18:16:19 +0700 Subject: [PATCH] update readme --- README.md | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 80 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1c17d05..891bc95 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,81 @@ -# atlas-go-sdk +# Atlas SDK for Go -An SDK for building ariga/atlas providers +An SDK for building ariga/atlas providers in Go. + +## Installation + +```bash +go get -u ariga.io/atlas-go-sdk +``` + +## How to use + +To use the SDK, you need to create a new client with your `migrations` folder and the `atlas` binary path. + +```go +package example + +import ( + ... + "ariga.io/atlas-go-sdk/atlasexec" +) + +func main() { + // Create a new client + client, err := atlasexec.NewClient("my-migration-folder", "my-atlas-cli-path") + if err != nil { + log.Fatalf("failed to create client: %v", err) + } +} +``` + +## APIs + +The SDK provides the following APIs: + +- `Login`: Login to the [Atlas Cloud](https://atlasgo.cloud/) +- `Logout`: runs the 'logout' command. +- `MigratePush`: runs the "atlas migrate push" command. +- `MigrateLint`: runs the "atlas migrate lint" command. +- `MigrateApplySlice`: runs the "atlas migrate apply" command for multiple targets. +- `MigrateApply`: runs the "atlas migrate apply" command. +- `MigrateApplySlice`: runs the 'atlas migrate apply' command for multiple targets. +- `MigrateDown`: runs the "atlas migrate down" command. +- `MigrateStatus`: runs the "atlas migrate status" command. +- `SchemaApply`: runs the "atlas schema apply" command. +- `SchemaInspect`: runs the "atlas schema inspect" command. +- `SchemaDiff`: runs the "atlas schema diff" command. + +Example with `MigratePush` API: + +```go + +func main() { + // Create a new client + client, err := atlasexec.NewClient("my-migration-folder", "my-atlas-cli-path") + if err != nil { + log.Fatalf("failed to create client: %v", err) + } + + // Login to the Atlas Cloud + ctx := context.Background() + loginParams := atlasexec.LoginParams{ + Token: "my-token" + } + err = client.Login(ctx, loginParams) + if err != nil { + log.Fatalf("failed to login: %v", err) + } + + // Run the 'atlas migrate push' command + migrateParams := atlasexec.MigratePushParams{ + Name: "name", + DirURL: "dir-url", + DevURL: "dev-url", + } + _, err = client.MigratePush(ctx, migrateParams) + if err != nil { + log.Fatalf("failed to run migrate push: %v", err) + } +} +``` \ No newline at end of file