MCPcopy Index your code
hub / github.com/bytebase/bytebase / dumpOneDatabase

Method dumpOneDatabase

backend/plugin/db/sqlite/dump.go:46–92  ·  view source on GitHub ↗
(ctx context.Context, out io.Writer)

Source from the content-addressed store, hash-verified

44}
45
46func (d *Driver) dumpOneDatabase(ctx context.Context, out io.Writer) error {
47 txn, err := d.db.BeginTx(ctx, &sql.TxOptions{ReadOnly: true})
48 if err != nil {
49 return err
50 }
51 defer txn.Rollback()
52
53 // Get all schemas.
54 query := "SELECT type, name, sql FROM sqlite_schema;"
55 rows, err := txn.QueryContext(ctx, query)
56 if err != nil {
57 return util.FormatErrorWithQuery(err, query)
58 }
59 defer rows.Close()
60
61 var sqliteSchemas []sqliteSchema
62 for rows.Next() {
63 var s sqliteSchema
64 var sql sql.NullString
65 if err := rows.Scan(
66 &s.schemaType,
67 &s.name,
68 &sql,
69 ); err != nil {
70 return err
71 }
72 if sql.Valid {
73 s.statement = sql.String
74 }
75 sqliteSchemas = append(sqliteSchemas, s)
76 }
77 if err := rows.Err(); err != nil {
78 return err
79 }
80
81 for _, s := range sqliteSchemas {
82 // We should skip sqlite sequence table.
83 if s.name == "sqlite_sequence" {
84 continue
85 }
86 if _, err := io.WriteString(out, fmt.Sprintf("%s;\n", s.statement)); err != nil {
87 return err
88 }
89 }
90
91 return txn.Commit()
92}

Callers 1

DumpMethod · 0.95

Implementers 15

MockDriverbackend/plugin/advisor/utils_for_tests
Driverbackend/plugin/db/bigquery/bigquery.go
Driverbackend/plugin/db/mongodb/mongodb.go
Driverbackend/plugin/db/trino/trino.go
Driverbackend/plugin/db/redshift/redshift.go
Driverbackend/plugin/db/oracle/oracle.go
Driverbackend/plugin/db/dynamodb/dynamodb.go
Driverbackend/plugin/db/cosmosdb/cosmosdb.go
Driverbackend/plugin/db/spanner/spanner.go
Driverbackend/plugin/db/mssql/mssql.go
Driverbackend/plugin/db/mysql/mysql.go
Driverbackend/plugin/db/pg/pg.go

Calls 5

FormatErrorWithQueryFunction · 0.92
QueryContextMethod · 0.80
ScanMethod · 0.80
CloseMethod · 0.65
NextMethod · 0.45

Tested by

no test coverage detected