lxd/db/query/dump.go
func Dump(tx *sql.Tx, schema string, schemaOnly bool) (string, error) {
	schemas := dumpParseSchema(schema)

	// Begin
	dump := `PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
`
	// Schema table
	tableDump, err := dumpTable(tx, "schema", dumpSchemaTable)
	if err != nil {
		return "", errors.Wrapf(err, "failed to dump table schema")
	}
	dump += tableDump

	// All other tables
	tables := make([]string, 0)
	for table := range schemas {
		tables = append(tables, table)
	}
	sort.Strings(tables)
	for _, table := range tables {
		if schemaOnly {
			// Dump only the schema.
			dump += schemas[table] + "\n"
			continue
		}
		tableDump, err := dumpTable(tx, table, schemas[table])
		if err != nil {
			return "", errors.Wrapf(err, "failed to dump table %s", table)
		}
		dump += tableDump
	}

	// Sequences (unless the schemaOnly flag is true)
	if !schemaOnly {
		tableDump, err = dumpTable(tx, "sqlite_sequence", "DELETE FROM sqlite_sequence;")
		if err != nil {
			return "", errors.Wrapf(err, "failed to dump table sqlite_sequence")
		}
		dump += tableDump
	}

	// Commit
	dump += "COMMIT;\n"

	return dump, nil
}
func Dump(tx *sql.Tx, schema string, schemaOnly bool) (string, error) {
	schemas := dumpParseSchema(schema)

	// Begin
	dump := `PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
`
	// Schema table
	tableDump, err := dumpTable(tx, "schema", dumpSchemaTable)
	if err != nil {
		return "", errors.Wrapf(err, "failed to dump table schema")
	}
	dump += tableDump

	// All other tables
	tables := make([]string, 0)
	for table := range schemas {
		tables = append(tables, table)
	}
	sort.Strings(tables)
	for _, table := range tables {
		if schemaOnly {
			// Dump only the schema.
			dump += schemas[table] + "\n"
			continue
		}
		tableDump, err := dumpTable(tx, table, schemas[table])
		if err != nil {
			return "", errors.Wrapf(err, "failed to dump table %s", table)
		}
		dump += tableDump
	}

	// Sequences (unless the schemaOnly flag is true)
	if !schemaOnly {
		tableDump, err = dumpTable(tx, "sqlite_sequence", "DELETE FROM sqlite_sequence;")
		if err != nil {
			return "", errors.Wrapf(err, "failed to dump table sqlite_sequence")
		}
		dump += tableDump
	}

	// Commit
	dump += "COMMIT;\n"

	return dump, nil
}
func Dump ( tx * sql . Tx , schema string , schemaOnly bool ) ( string , error ) { schemas := dumpParseSchema ( schema ) // Begin dump := `PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
` // Schema table tableDump , err := dumpTable ( tx , " " , dumpSchemaTable ) if err != nil { return " " , errors . Wrapf ( err , " " ) } dump += tableDump // All other tables tables := make ( [ ] string , 0 ) for table := range schemas { tables = append ( tables , table ) } sort . Strings ( tables ) for _ , table := range tables { if schemaOnly { // Dump only the schema. dump += schemas [ table ] + " \n " continue } tableDump , err := dumpTable ( tx , table , schemas [ table ] ) if err != nil { return " " , errors . Wrapf ( err , " " , table ) } dump += tableDump } // Sequences (unless the schemaOnly flag is true) if ! schemaOnly { tableDump , err = dumpTable ( tx , " " , " " ) if err != nil { return " " , errors . Wrapf ( err , " " ) } dump += tableDump } // Commit dump += " \n " return dump , nil }
// Dump returns a SQL text dump of all rows across all tables, similar to
// sqlite3's dump feature
Dump returns a SQL text dump of all rows across all tables similar to sqlite3 s dump feature