{"id":19732345,"url":"https://github.com/terminusdb/terminusdb-10-to-11","last_synced_at":"2026-06-08T13:32:47.524Z","repository":{"id":64857116,"uuid":"578579522","full_name":"terminusdb/terminusdb-10-to-11","owner":"terminusdb","description":"Converter tool for moving from terminusdb v10 to v11","archived":false,"fork":false,"pushed_at":"2023-04-03T22:57:26.000Z","size":102,"stargazers_count":0,"open_issues_count":5,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-19T17:48:47.195Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/terminusdb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-15T11:48:52.000Z","updated_at":"2022-12-15T11:50:09.000Z","dependencies_parsed_at":"2025-01-10T17:49:30.472Z","dependency_job_id":"23a94200-8afd-4503-916b-11baef1e2c56","html_url":"https://github.com/terminusdb/terminusdb-10-to-11","commit_stats":{"total_commits":52,"total_committers":3,"mean_commits":"17.333333333333332","dds":"0.34615384615384615","last_synced_commit":"df1dbfe41734dd6ccaca689f9ba72ea780cd9a21"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/terminusdb/terminusdb-10-to-11","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb-10-to-11","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb-10-to-11/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb-10-to-11/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb-10-to-11/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terminusdb","download_url":"https://codeload.github.com/terminusdb/terminusdb-10-to-11/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb-10-to-11/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34065349,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T00:25:55.768Z","updated_at":"2026-06-08T13:32:47.502Z","avatar_url":"https://github.com/terminusdb.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TerminusDB 10 to 11 conversion tool\n\nThis tool allows you to convert a storage directory from TerminusDB 10\nto TerminusDB 11. TerminusDB 11 has an improved storage format which\nwill use less storage space and increase the speed of retrieval by\naround 25%.\n\n## Installation\n\nTo install this conversion tool, download the binary from the [release page](https://github.com/terminusdb/terminusdb-10-to-11/releases/tag/v1.0.1). Alternatively, if you have cargo install, you can use `cargo install terminusdb-10-to-11` to build the binary locally and install it into your cargo bin folder.\n\n## Invocation\n\n```\nUsage: terminusdb-10-to-11 convert-store [OPTIONS] \u003cFROM\u003e \u003cTO\u003e\n\nArguments:\n  \u003cFROM\u003e  The storage dir from v10\n  \u003cTO\u003e    The storage dir for v11\n\nOptions:\n  -w, --workdir \u003cWORKDIR\u003e  The workdir to store mappings in\n      --naive              Convert the store assuming all values are strings\n  -c, --continue           Keep going with other layers if a layer does not convert\n  -v, --verbose            Verbose reporting\n  -r, --replace            Replace original directory with converted directory\n  -k, --clean              Cleanup work directory after successful run\n  -h, --help               Print help information\n```\n\n## Basic use\n### For TerminusDB users\nTerminusDB by default stores the database under `storage/db` in your terminusdb install path. For example, if your terminusdb is installed under `/home/joan/terminusdb`, the database directory will be at `/home/joan/terminusdb/storage/db`.\n\nA simple invocation that should allow an in place conversion with a\nbackup is as follows:\n\n```\n$ terminusdb10-to-11 convert-store -krv \u003cpath to old store\u003e \u003cpath to temporary new store dir\u003e\n```\n\nFor the example where your terminusdb is installed under `/home/joan/terminusdb` (and therefore your db is at `/home/joan/terminusdb/storage/db`), this command would be as follows:\n```\n$ terminusdb10-to-11 convert-store -krv /home/joan/terminusdb/storage/db /home/joan/terminusdb/storage/converted_db\n```\n\n\nAfter performing this conversion, you can no longer use the store with the old TerminusDB 10. Your old store will however have been copied to a backup folder, which the command output tells you the location of. Should you need to downgrade, you can simply move this backup folder back to the original location.\n\n### For other store users\nBy default, this conversion tool assumes it is running against a TerminusDB store. This means that it expects all values in the various layers to be annotated with TerminusDB types. If you are using terminus-store in another project, this will probably not be the case for you, causing the conversion to fail.\n\nIf this is the case, you should use the `--naive` flag. This will convert the store assuming that all values are strings. Do NOT use this flag on stores used by TerminusDB though, as this will render the destination store unusable.\n\n## What the tool does\nThis tool performs the following steps.\n\n1. Find out which layers are reachable by opening the label files, and gathering any referred layers as well as their parents.\n2. Convert each layer, storing the converted layer in the destination directory. If the layer was already converted (for example in a previous aborted run), the layer is skipped.\n3. Copy over all labels to the destination directory.\n\nVarious flags modify this basic behavior.\n\n### Replacing the original store after a successful run\nBy default, the tool will not modify the original store directory, but only build a new store in the destination directory. If you wish to automatically replace the store after a successful run, you can use `-r` or `--replace`. This will move the original store to a backup location, and then move the destination directory to the original location.\n\n### Cleanup temporary files after a successful run\nBy default, the tool will not clean up temporary files used during conversion. Using `-k` or `--clean`, the workdir will be automatically removed after a successful run.\n\nNote that this flag will be ignored if an explicit workdir was specified with `-w` or `--workdir`. This is done to prevent accidental removal of files that have nothing to do with the conversion, such as when an already existing directory was specified as a workdir.\n\n### Verbose output\nUsing `-v` or `--verbose`, the tool can be made to print out the steps it goes through while converting a layer. This can be useful to get more accurate status information.\n\n### Using a non-default workdir\nBy default, the conversion tool will use a subdirectory of the destination store directory to store temporary work files. using `-w` or `--workdir`, you can set up a different directory for this.\n\n### Continue on failure\nThe tool will exit as soon as it encounters an error, such as a value that cannot be converted, or a layer that misses some files. Using `-c` or `--continue`, the tool can be forced to continue converting other layers. Failures will still be reported and logged, and the final exit code of the tool will indicate failure, but every reachable layer that is convertible will be converted.\n\nNote that failing to convert a layer will also automatically fail to convert any of its child layers.\n\n### Naive conversion\nusing `--naive`, the tool can be forced to ignore any type annotations in the layers, instead converting everything as strings. This is useful when converting stores that weren't created by TerminusDB.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterminusdb%2Fterminusdb-10-to-11","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterminusdb%2Fterminusdb-10-to-11","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterminusdb%2Fterminusdb-10-to-11/lists"}