Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workspace exporting to CSV #1568

Open
3 tasks done
alexkotusenko opened this issue Sep 2, 2024 · 0 comments
Open
3 tasks done

Workspace exporting to CSV #1568

alexkotusenko opened this issue Sep 2, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@alexkotusenko
Copy link

Have you read a contributing guide?

  • I have read CONTRIBUTING.md
  • I have searched the existing requests and didn't find any that were similar
  • I have considered creating a pull request instead and want to proceed

Clear and concise description of the problem

Exporting entire workspaces and importing them again is a headache when working with markdown files. It would be great to have an export option that allows the user to export all the objects with all of their details, to import everything back in without any formatting issues (since right now, importing workspaces that have been previously exported as markdown zip files wipes object types, descriptions, tags and more), and to allow migration to other apps, should things not work out with Anytype.

Suggested solution

Basic idea

Everything can be exported as a huge CSV file. Each relation and detail about an object gets its own column. There will be relations that all objects have in common, like the creation date, object type, etc., and some will be unique to a fraction of the total objects only (description, tags, etc., since not all objects have them).

File size considerations

It may seem redundant for all objects to have all the columns (relations) associated with them, but the empty CSV fields for empty relations will not be an issue storage-wise when exporting the file, since they imply a mere comma (which is one byte). Theoretically speaking, exporting an entire workspace to JSON would not be as efficient, since empty relations will take up a lot more space on each one of the objects (since empty fields will look like relation_name="", which takes up way more space that a single comma in CSV (correct me if I'm wrong though)).

Example

cropped1

Helper file

To allow parsing columns to actual Anytype relations, a small additional file would be needed (to map column numbers (corresponding to different relations) to relation types such as single-select, multi-select, text, number, etc. relation types).

(Optional) Type info file

A tiny additional file containing information about the types used by the user and what relations are used by what type could greatly simplify the process of reimporting data to Anytype, since it would imply that the user does not have to set up their types again.

Alternative

To save even more space and/or only export objects of one type (for example, only notes), a single-type export option could be great too. That way, the user can only export objects of whichever type they need.

Additional context

No response

@alexkotusenko alexkotusenko added the enhancement New feature or request label Sep 2, 2024
@ra3orblade ra3orblade transferred this issue from anyproto/anytype-ts Sep 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant