Skip to content

Commit de9b440

Browse files
committed
Add use command, add support for local/remote files, add .mdf file attach support
1 parent d1965d1 commit de9b440

22 files changed

+311
-417
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Use `sqlcmd` to create SQL Server and Azure SQL Edge instances using a local con
5858
To create a local SQL Server instance with the AdventureWorksLT database restored, query it, and connect to it using Azure Data Studio, run:
5959

6060
```
61-
sqlcmd create mssql --accept-eula --using https://aka.ms/AdventureWorksLT.bak
61+
sqlcmd create mssql --accept-eula --use https://aka.ms/AdventureWorksLT.bak
6262
sqlcmd query "SELECT DB_NAME()"
6363
sqlcmd open ads
6464
```

cmd/modern/main.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"github.com/microsoft/go-sqlcmd/internal/output"
2121
"github.com/microsoft/go-sqlcmd/internal/output/verbosity"
2222
"github.com/microsoft/go-sqlcmd/internal/pal"
23+
"github.com/microsoft/go-sqlcmd/pkg/mssqlcontainer"
2324
"github.com/microsoft/go-sqlcmd/pkg/sqlcmd"
2425
"github.com/spf13/cobra"
2526
"path"
@@ -95,9 +96,7 @@ func initializeEnvVars() {
9596
os.Setenv("SQLCMDPASSWORD", password)
9697
}
9798
}
98-
9999
}
100-
101100
}
102101

103102
// isFirstArgModernCliSubCommand is TEMPORARY code, to be removed when
@@ -132,6 +131,10 @@ func initializeCallback() {
132131
HintHandler: displayHints,
133132
LineBreak: sqlcmd.SqlcmdEol,
134133
})
134+
mssqlcontainer.Initialize(mssqlcontainer.InitializeOptions{
135+
ErrorHandler: checkErr,
136+
TraceHandler: outputter.Tracef,
137+
})
135138
config.SetFileName(rootCmd.configFilename)
136139
config.Load()
137140
}

cmd/modern/root.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ type Root struct {
2727
// It also provides usage examples for sqlcmd.
2828
func (c *Root) DefineCommand(...cmdparser.CommandOptions) {
2929
// Example usage steps
30-
steps := []string{"sqlcmd create mssql --accept-eula --using https://aka.ms/AdventureWorksLT.bak"}
30+
steps := []string{"sqlcmd create mssql --accept-eula --use https://aka.ms/AdventureWorksLT.bak"}
3131

3232
if runtime.GOOS == "windows" || runtime.GOOS == "darwin" {
3333
steps = append(steps, "sqlcmd open ads")
@@ -69,6 +69,7 @@ func (c *Root) SubCommands() []cmdparser.Command {
6969
cmdparser.New[*root.Query](dependencies),
7070
cmdparser.New[*root.Start](dependencies),
7171
cmdparser.New[*root.Stop](dependencies),
72+
cmdparser.New[*root.Use](dependencies),
7273
cmdparser.New[*root.Uninstall](dependencies),
7374
}
7475

cmd/modern/root/config/connection-strings.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func (c *ConnectionStrings) run() {
7171
if endpoint.AssetDetails != nil && endpoint.AssetDetails.ContainerDetails != nil {
7272
controller := container.NewController()
7373
if controller.ContainerRunning(endpoint.AssetDetails.ContainerDetails.Id) {
74-
s := sql.New(sql.SqlOptions{})
74+
s := sql.NewSql(sql.SqlOptions{})
7575
s.Connect(endpoint, user, sql.ConnectOptions{Interactive: false})
7676
c.database = s.ScalarString("PRINT DB_NAME()")
7777
} else {

cmd/modern/root/install/edge_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func TestInstallEdge(t *testing.T) {
2525
cmdparser.TestCmd[*edge.GetTags]()
2626
cmdparser.TestCmd[*Edge](
2727
fmt.Sprintf(
28-
`--accept-eula --user-database foo --errorlog-wait-line "Hello from Docker!" --registry %v --repo %v`,
28+
`--accept-eula --database foo --errorlog-wait-line "Hello from Docker!" --registry %v --repo %v`,
2929
registry,
3030
repo))
3131

0 commit comments

Comments
 (0)