firestore-migrator

by codediodeio

codediodeio / firestore-migrator

:bullettrain_side: A CLI utility for moving data to and from Cloud Firestore

237 Stars 70 Forks Last release: Not found 43 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Fire Migrate

πŸ‘€ Firestore now has an official import/export process. Consider that your first option if it suits your needs. If it does not, continue reading...

CLI tool for moving data in-n-out of Cloud Firestore.

  • Import/Export CSV, Excel, or JSON files to/from Firestore.
  • Encode/Decode Firestore data types such as GeoPoint, Reference, Timestamp, etc.

Watch the screencast

Install

  • Clone and run
    npm install
  • Download the service account from your Firebase project settings, then save it as
    credentials.json
    in the project root.
  • npm run build
    and you're off and running.

Import Data to Firestore

  • Push your local data to the Firestore database.
  • Selectively import [collections...] from source file to Firestore.
  • Omitting [collections...], or specifying root "/" will import all collections.
import|i [options]  [collections...]

Options: ``` -i, --id [field] Field to use for Document IDs. (default: doc_id) -a, --auto-id [str] Document ID token specifying auto generated Document ID. (default: Auto-ID) -m, --merge Merge Firestore documents. Default is Replace. -k, --chunk [size] Split upload into batches. Max 500 by Firestore constraints. (default: 500) -p, --coll-prefix prefixCollection prefix. (default: collection)

-s, --sheet [#] Single mode XLSX Sheet # to import.

-T, --truncate Delete all documents from target collections before import.

-d, --dry-run Perform a dry run, without committing data. Implies --verbose. -v, --verbose Output document insert paths -h, --help output usage information ```

Examples:

fire-migrate import --dry-run test.json myCollection
fire-migrate import --merge test.INDEX.csv myCollection
fire-migrate i -m --id docid test.xlsx myCollection

Export Data from Firestore

  • Pull data from Firestore to a JSON, CSV or XLSX file.
  • Selectively export [collections...], or entire database with root "/".
  • Exports Sub-Collections by default, optionally disabled.
  • Splits CSV/XLSX collections into separate files/sheets with an INDEX.
export|e [options]  [collections...]

Options: ```

-n, --no-subcolls Do not export sub-collections. -p, --coll-prefix [prefix] Collection prefix (default: collection) -i, --id-field [id] Field name to use for document IDs (default: doc_id)

-v, --verbose Output traversed document paths -h, --help output usage information ```

Examples:

fire-migrate export --verbose --no-subcolls myCollectionRootLevel.json myCollection
fire-migrate export users-posts.json users posts
fire-migrate e -v firestore-dump.xlsx

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.