github.com/RevenueMonster/sqlike@v1.0.6/examples/database.go (about) 1 package examples 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/RevenueMonster/sqlike/sqlike" 8 "github.com/stretchr/testify/require" 9 ) 10 11 // DatabaseExamples : 12 func DatabaseExamples(t *testing.T, client *sqlike.Client) { 13 var ( 14 err error 15 ctx = context.Background() 16 ) 17 18 { 19 dbName := "test" 20 err = client.DropDatabase(ctx, dbName) 21 require.NoError(t, err) 22 err = client.CreateDatabase(ctx, dbName) 23 require.NoError(t, err) 24 25 testDB := client.Database(dbName) 26 require.Equal(t, dbName, testDB.Name()) 27 tb := testDB.Table("t1") 28 require.NotNil(t, tb) 29 30 tb.MustUnsafeMigrate(ctx, struct { 31 ID int64 `sqlike:",auto_increment"` 32 }{}) 33 34 var o struct { 35 Rows uint `sqlike:"rows"` 36 } 37 38 err = testDB.QueryRow(ctx, "EXPLAIN SELECT * FROM `t1`;").Decode(&o) 39 require.NoError(t, err) 40 // empty table will treat as one record when using EXPLAIN 41 require.Equal(t, uint(1), o.Rows) 42 } 43 44 { 45 dbs, err := client.ListDatabases(ctx) 46 require.True(t, len(dbs) > 0) 47 require.NoError(t, err) 48 } 49 50 }