Skip to content

Commit a703eb1

Browse files
committed
add tursodb (mvcc) mode flag with db create command
1 parent 23e5daf commit a703eb1

3 files changed

Lines changed: 19 additions & 7 deletions

File tree

internal/cmd/db_create.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ func init() {
6262
addSizeLimitFlag(createCmd)
6363
addRemoteEncryptionCipherFlag(createCmd)
6464
addRemoteEncryptionKeyFlag(createCmd)
65+
addTursoDBFlag(createCmd)
6566
}
6667

6768
var createCmd = &cobra.Command{
@@ -126,7 +127,7 @@ func CreateDatabase(name string) error {
126127
spinner := prompt.Spinner(fmt.Sprintf("Creating database %s in group %s...", internal.Emph(name), internal.Emph(groupName)))
127128
defer spinner.Stop()
128129

129-
if _, err = client.Databases.Create(name, location, "", "", groupName, schemaFlag, typeFlag == "schema", seed, sizeLimitFlag, remoteEncryptionCipherFlag, remoteEncryptionKeyFlag(), spinner); err != nil {
130+
if _, err = client.Databases.Create(name, location, "", "", groupName, schemaFlag, typeFlag == "schema", seed, sizeLimitFlag, remoteEncryptionCipherFlag, remoteEncryptionKeyFlag(), tursoDBFlag, spinner); err != nil {
130131
return fmt.Errorf("could not create database %s: %w", name, err)
131132
}
132133

internal/cmd/tursodb_flag.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package cmd
2+
3+
import "github.com/spf13/cobra"
4+
5+
var tursoDBFlag bool
6+
7+
func addTursoDBFlag(cmd *cobra.Command) {
8+
cmd.Flags().BoolVar(&tursoDBFlag, "tursodb", false, "Create the database using TursoDB (MVCC).")
9+
}

internal/turso/databases.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,10 @@ type CreateDatabaseBody struct {
150150
IsSchema bool `json:"is_schema,omitempty"`
151151
SizeLimit string `json:"size_limit,omitempty"`
152152
RemoteEncryption *RemoteEncryption `json:"remote_encryption,omitempty"`
153+
UseTursoDB bool `json:"use_tursodb,omitempty"`
153154
}
154155

155-
func (d *DatabasesClient) Create(name, location, image, extensions, group string, schema string, isSchema bool, seed *DBSeed, sizeLimit, remoteEncryptionCipher, remoteEncryptionKey string, spinner *prompt.SpinnerT) (*CreateDatabaseResponse, error) {
156+
func (d *DatabasesClient) Create(name, location, image, extensions, group string, schema string, isSchema bool, seed *DBSeed, sizeLimit, remoteEncryptionCipher, remoteEncryptionKey string, useTursoDB bool, spinner *prompt.SpinnerT) (*CreateDatabaseResponse, error) {
156157
isTursoServerUpload := seed != nil && seed.Type == "database_upload" && seed.Filepath != ""
157158
var uploadFilepath string
158159
var params CreateDatabaseBody
@@ -164,13 +165,14 @@ func (d *DatabasesClient) Create(name, location, image, extensions, group string
164165
seed.URL = ""
165166
seed.Timestamp = nil
166167
params = CreateDatabaseBody{
167-
Name: name,
168-
Location: location,
169-
Group: group,
170-
Seed: seed,
168+
Name: name,
169+
Location: location,
170+
Group: group,
171+
Seed: seed,
172+
UseTursoDB: useTursoDB,
171173
}
172174
} else {
173-
params = CreateDatabaseBody{name, location, image, extensions, group, seed, schema, isSchema, sizeLimit, nil}
175+
params = CreateDatabaseBody{name, location, image, extensions, group, seed, schema, isSchema, sizeLimit, nil, useTursoDB}
174176
}
175177

176178
if remoteEncryptionKey != "" {

0 commit comments

Comments
 (0)