Exports documents and assets from a Sanity dataset
npm install --save @sanity/export
const exportDataset = require('@sanity/export')
exportDataset({
// Instance of @sanity/client configured to correct project ID and dataset
client: someInstantiatedSanityClientInstance,
// Name of dataset to export
dataset: 'myDataset',
// Path to write tar.gz-archive file to, or `-` for stdout
outputPath: '/home/your-user/myDataset.tar.gz',
// Whether or not to export assets. Note that this operation is currently slightly lossy;
// metadata stored on the asset document itself (original filename, for instance) might be lost
// Default: `true`
assets: false,
// Exports documents only, without downloading or rewriting asset references
// Default: `false`
raw: true,
// Whether or not to export drafts
// Default: `true`
drafts: true,
// Export only given document types (`_type`)
// Optional, default: all types
types: ['products', 'shops'],
// Run 12 concurrent asset downloads
assetConcurrency: 12,
// What mode to use when exporting documents, can be eiter `stream`(default) or `cursor`.
// Cursor mode might help when dealing with large datasets, but might yield inconsistent results if the dataset is mutated during export.
// Default: 'stream'
mode: 'stream',
})
- Restore original filenames, keep track of duplicates, increase counter (
filename (<num>).ext
) - Skip archiving on raw/no-asset mode?
This functionality is built in to the @sanity/cli
package as sanity dataset export
MIT-licensed. See LICENSE.