2023-03-13 17:42:48 +01:00
|
|
|
---
|
|
|
|
layout: default
|
|
|
|
title: Import & Export data
|
|
|
|
nav_order: 4
|
2023-03-14 00:20:44 +01:00
|
|
|
parent: Usage
|
2023-03-13 17:42:48 +01:00
|
|
|
---
|
|
|
|
|
|
|
|
# Import & Export data
|
|
|
|
|
2023-10-15 13:21:14 +02:00
|
|
|
Part-DB offers the possibility to import existing data (parts, datastructures, etc.) from existing data sources into
|
|
|
|
Part-DB. Data can also be exported from Part-DB into various formats.
|
2023-03-13 17:42:48 +01:00
|
|
|
|
|
|
|
## Import
|
|
|
|
|
2023-03-15 21:33:18 +01:00
|
|
|
{: .note }
|
2023-10-15 13:21:14 +02:00
|
|
|
> As data import is a very powerful feature and can easily fill up your database with lots of data, import is by default
|
|
|
|
> only available for
|
|
|
|
> administrators. If you want to allow other users to import data, or can not import data, check the permissions of the
|
|
|
|
> user. You can enable import for each data structure
|
2023-03-15 21:33:18 +01:00
|
|
|
> individually in the permissions settings.
|
|
|
|
|
2023-10-15 13:21:14 +02:00
|
|
|
If you want to import data from PartKeepr you might want to look into the [PartKeepr migration guide]({% link
|
|
|
|
upgrade_legacy.md %}).
|
2023-03-26 00:32:03 +01:00
|
|
|
|
2023-03-13 17:42:48 +01:00
|
|
|
### Import parts
|
|
|
|
|
2023-10-15 13:21:14 +02:00
|
|
|
Part-DB supports the import of parts from CSV files and other formats. This can be used to import existing parts from
|
|
|
|
other databases or data sources into Part-DB. The import can be done via the "Tools -> Import parts" page, which you can
|
|
|
|
find in the "Tools" sidebar panel.
|
2023-03-13 17:42:48 +01:00
|
|
|
|
|
|
|
{: .important }
|
2023-10-15 13:21:14 +02:00
|
|
|
> When importing data, the data is immediately written to database during the import process, when the data is formally
|
|
|
|
> valid.
|
|
|
|
> You will not be able to check the data before it is written to the database, so you should review the data before
|
|
|
|
> using the import tool.
|
2023-03-13 17:42:48 +01:00
|
|
|
|
|
|
|
You can upload the file which should be imported here and choose various options on how the data should be treated:
|
|
|
|
|
2023-10-15 13:21:14 +02:00
|
|
|
* **Format**: By default "auto" is selected here and Part-DB will try to detect the format of the file automatically
|
|
|
|
based on its file extension. If you want to force a specific format or Part-DB can not auto-detect the format, you can
|
|
|
|
select it here.
|
|
|
|
* **CSV delimiter**: If you upload an CSV file, you can select the delimiter character which is used to separate the
|
|
|
|
columns in the CSV file. Depending on the CSV file, this might be a comma (`,`), semicolon (`;`).
|
|
|
|
* **Category override**: You can select (or create) a category here, to which all imported parts should be assigned, no
|
|
|
|
matter what was specified in the import file. This can be useful if you want to assign all imports to a certain
|
|
|
|
category or if no category is specified in the data. If you leave this field empty, the category will be determined by
|
|
|
|
the import file (or the export will error, if no category is specified).
|
|
|
|
* **Mark all imported parts as "Needs review"**: If this is selected, all imported parts will be marked as "Needs
|
|
|
|
review" after the import. This can be useful if you want to review all imported parts before using them.
|
|
|
|
* **Create unknown datastructures**: If this is selected Part-DB will create new datastructures (like categories,
|
|
|
|
manufacturers, etc.) if no datastructure(s) with the same name and path already exists. If this is not selected, only
|
|
|
|
existing datastructures will be used and if no matching datastrucure is found, the imported parts field will be empty.
|
|
|
|
* **Path delimiter**: Part-DB allows you to create/select nested datastructures (like categories, manufacturers, etc.)
|
|
|
|
by using a path (e.g. `Category 1->Category 1.1`, which will select/create the `Category 1.1` whose parent
|
|
|
|
is `Category 1`). This path is separated by the path delimiter. If you want to use a different path delimiter than the
|
|
|
|
default one (which is `>`), you can select it here.
|
|
|
|
* **Abort on validation error**: If this is selected, the import will be aborted if a validation error occurs (e.g. if a
|
|
|
|
required field is empty) for any of the imported parts and validation errors will be shown on top of the page. If this
|
|
|
|
is not selected, the import will continue for the other parts and only the invalid parts will be skipped.
|
|
|
|
|
|
|
|
After you have selected the options, you can start the import by clicking the "Import" button. When the import is
|
|
|
|
finished, you will see the results of the import in the lower half of the page. You find a table with the imported
|
|
|
|
parts (including links to them) there.
|
2023-03-13 17:42:48 +01:00
|
|
|
|
|
|
|
#### Fields description
|
|
|
|
|
2023-10-15 13:21:14 +02:00
|
|
|
For the importing of parts, you can use the following fields which will be imported into each part. Please note that the
|
|
|
|
field names are case-sensitive (so `name` is not the same as `Name`). All fields (besides name) are optional, so you can
|
|
|
|
leave them empty or do not include the column in your file.
|
2023-03-13 17:42:48 +01:00
|
|
|
|
|
|
|
* **`name`** (required): The name of the part. This is the only required field, all other fields are optional.
|
|
|
|
* **`description`**: The description of the part, you can use markdown/HTML syntax here for rich text formatting.
|
|
|
|
* **`notes`** or **`comment`**: The notes of the part, you can use markdown/HTML syntax here for rich text formatting.
|
2023-10-15 13:21:14 +02:00
|
|
|
* **`category`**: The category of the part. This can be a path (e.g. `Category 1->Category 1.1`), which will
|
|
|
|
select/create the `Category 1.1` whose parent is `Category 1`. If you want to use a different path delimiter than the
|
|
|
|
default one (which is `->`), you can select it in the import options. If the category does not exist and the option "
|
|
|
|
Create unknown datastructures" is selected, it will be created.
|
2023-03-13 17:42:48 +01:00
|
|
|
* **`footprint`**: The footprint of the part. Can be a path similar to the category field.
|
|
|
|
* **`favorite`**: If this is set to `1`, the part will be marked as favorite.
|
|
|
|
* **`manufacturer`**: The manufacturer of the part. Can be a path similar to the category field.
|
|
|
|
* **`manufacturer_product_number`** or **`mpn`**: The manufacturer product number of the part.
|
2023-10-15 13:24:56 +02:00
|
|
|
* **`manufacturer_product_url`**: The URL to the product page of the manufacturer of the part.
|
2023-10-15 13:21:14 +02:00
|
|
|
* **`manufacturing_status`**: The manufacturing status of the part, must be one of the following
|
|
|
|
values: `announced`, `active`, `nrfnd`, `eol`, `discontinued` or left empty.
|
2023-03-13 17:42:48 +01:00
|
|
|
* **`needs_review`** or **`needs_review`**: If this is set to `1`, the part will be marked as "needs review".
|
|
|
|
* **`tags`**: A comma separated list of tags for the part.
|
|
|
|
* **`mass`**: The mass of the part in grams.
|
|
|
|
* **`ipn`**: The IPN (Item Part Number) of the part.
|
|
|
|
* **`minamount`**: The minimum amount of the part which should be in stock.
|
|
|
|
* **`partUnit`**: The measurement unit of the part to use. Can be a path similar to the category field.
|
|
|
|
|
2023-10-15 13:21:14 +02:00
|
|
|
With the following fields you can specify storage locations and amount / quantity in stock of the part. An PartLot will
|
|
|
|
be created automatically from the data and assigned to the part. The following fields are helpers for an easy import for
|
|
|
|
parts at one storage location. If you need to create a Part with multiple PartLots you have to use JSON format (or CSV)
|
|
|
|
with nested objects:
|
2023-03-13 17:42:48 +01:00
|
|
|
|
2023-10-15 13:21:14 +02:00
|
|
|
**`storage_location`** or **`storelocation`**: The storage location of the part. Can be a path similar to the category
|
|
|
|
field.
|
|
|
|
**`amount`**, **`quantity`** or **`instock`**: The amount of the part in stock. If this value is not set, the part lot
|
|
|
|
will be marked with "unknown amount"
|
2023-03-13 17:42:48 +01:00
|
|
|
|
2023-10-15 13:21:14 +02:00
|
|
|
The following fields can be used to specify the supplier/distributor, supplier product number and the price of the part.
|
|
|
|
This is only possible for a single supplier/distributor and price with these fields. If you need to specify multiple
|
|
|
|
suppliers/distributors or prices, you have to use JSON format (or CSV) with nested objects.
|
|
|
|
**Please note that the supplier fields is required, if you want to import prices or supplier product numbers**. If the
|
|
|
|
supplier is not specified, the price and supplier product number fields will be ignored:
|
2023-03-13 17:42:48 +01:00
|
|
|
|
|
|
|
* **`supplier`**: The supplier of the part. Can be a path similar to the category field.
|
|
|
|
* **`supplier_product_number`** or **`supplier_part_number`** or * **`spn`**: The supplier product number of the part.
|
|
|
|
* **`price`**: The price of the part in the base currency of the database (by default euro).
|
|
|
|
|
|
|
|
#### Example data
|
2023-10-15 13:21:14 +02:00
|
|
|
|
|
|
|
Here you can find some example data for the import of parts, you can use it as a template for your own import (
|
|
|
|
especially the CSV file).
|
2023-03-13 17:42:48 +01:00
|
|
|
|
2023-03-15 21:33:18 +01:00
|
|
|
* [Part import CSV example]({% link assets/usage/import_export/part_import_example.csv %}) with all possible fields
|
|
|
|
|
2023-03-13 17:42:48 +01:00
|
|
|
## Export
|
|
|
|
|
2023-10-15 13:21:14 +02:00
|
|
|
By default, every user, who can read the datastructure, can also export the data of this datastructure, as this does not
|
|
|
|
give the user any additional information.
|
2023-03-13 17:42:48 +01:00
|
|
|
|
|
|
|
### Exporting data structures (categories, manufacturers, etc.)
|
2023-10-15 13:21:14 +02:00
|
|
|
|
|
|
|
You can export data structures (like categories, manufacturers, etc.) in the respective edit page (e.g. Tools Panel ->
|
|
|
|
Edit -> Category).
|
|
|
|
If you select a certain datastructure from your list, you can export it (and optionally all sub-datastructures) in the "
|
|
|
|
Export" tab.
|
|
|
|
If you want to export all datastructures of a certain type (e.g. all categories in your database), you can select the "
|
|
|
|
Export all" function in the "Import / Export" tab of the "new element" page.
|
2023-03-13 17:42:48 +01:00
|
|
|
|
|
|
|
You can select between the following export formats:
|
2023-10-15 13:21:14 +02:00
|
|
|
|
|
|
|
* **CSV** (Comma Separated Values): A semicolon separated list of values, where every line represents an element. This
|
|
|
|
format can be imported into Excel or LibreOffice Calc and is easy to work with. However, it does not support nested
|
|
|
|
datastructures or sub data (like parameters, attachments, etc.), very well (many columns are generated, as every
|
|
|
|
possible sub data is exported as a separate column).
|
|
|
|
* **JSON** (JavaScript Object Notation): A text-based format, which is easy to work with programming languages. It
|
|
|
|
supports nested datastructures and sub data (like parameters, attachments, etc.) very well. However, it is not easy to
|
|
|
|
work with in Excel or LibreOffice Calc and you maybe need to write some code to work with the exported data
|
|
|
|
efficiently.
|
2023-03-13 17:42:48 +01:00
|
|
|
* **YAML** (Yet another Markup Language): Very similar to JSON
|
2023-10-15 13:21:14 +02:00
|
|
|
* **XML** (Extensible Markup Language): Good support with nested datastructures. Similar use case as JSON and YAML.
|
|
|
|
|
|
|
|
Also, you can select between the following export levels:
|
2023-03-13 17:42:48 +01:00
|
|
|
|
|
|
|
* **Simple**: This will only export very basic information about the name (like the name, or description for parts)
|
2023-10-15 13:21:14 +02:00
|
|
|
* **Extended**: This will export all commonly used information about this datastructure (like notes, options, etc.)
|
2023-03-13 17:42:48 +01:00
|
|
|
* **Full**: This will export all available information about this datastructure (like all parameters, attachments)
|
|
|
|
|
2023-10-15 13:21:14 +02:00
|
|
|
Please note that the level will also be applied to all sub data or children elements. So if you select "Full" for a
|
|
|
|
part, all the associated categories, manufacturers, footprints, etc. will also be exported with all available
|
|
|
|
information, this can lead to very large export files.
|
2023-03-13 17:42:48 +01:00
|
|
|
|
|
|
|
### Exporting parts
|
2023-10-15 13:21:14 +02:00
|
|
|
|
|
|
|
You can export parts in all part tables. Select the parts you want via the checkbox in the table line and select the
|
|
|
|
export format and level in the appearing menu.
|
2023-03-13 17:42:48 +01:00
|
|
|
|
|
|
|
See the section about exporting datastructures for more information about the export formats and levels.
|