Improve documentation for Import and Export #7302

Closed
opened 2025-12-29 20:21:31 +01:00 by adam · 4 comments
Owner

Originally created by @jnovak-netsystemcz on GitHub (Nov 29, 2022).

NetBox version

v3.3.8

Feature type

Change to existing functionality

Proposed functionality

Introduction

I started as a newcomer with Netbox. I was faced to task to fill in data. Therefore I read documentation and found section Populating Data/Bulk Import (CSV/YAML). I was happy.

Then I found that import "do not work" - it printed errors I was not able to resolve. So I decided to use export as sample and import data back. It didn't work too.
Later I recognized that it is intended that exported file can't be used for import - column header names, IDs, ...
I updated my import file and touched issue that values in some columns were not found even exported before. Nowadays I know that import requires key values not names (e.g. type of port etc.).

I'm able to import everything I wish nowadays. But I spent days with learning of it. During learning I found that same issue is happening to newcomers over and over (search discussions and google). I asked my friends who shown me Netbox, they had same issue in past...

So I believe it is time to improve the documentation...

Proposal

I propose to update Bulk Import (CSV/YAML) chapter in documentation:

Clearly state that export and import are independent operations and it is intended, that output of export can't be directly used for import. Describe that import is not capable to update existing rows up to 3.3.x. For 3.4.x update will work.
Describe key points about import file (mainly for CSV):

  • supported columns are described on import page
    • column names are lower case, even exported ones use different casing
  • some columns must match list of values - available values are shown when hovering question mark right on row
    • values from export usually do not work, you MUST check list

Add screenshot of one import page with marking points above and show related example import file.

Use case

Time saving for every newcomer.

Database changes

None

External dependencies

None

Originally created by @jnovak-netsystemcz on GitHub (Nov 29, 2022). ### NetBox version v3.3.8 ### Feature type Change to existing functionality ### Proposed functionality ### Introduction I started as a newcomer with Netbox. I was faced to task to fill in data. Therefore I read documentation and found section Populating Data/Bulk Import (CSV/YAML). I was happy. Then I found that import "do not work" - it printed errors I was not able to resolve. So I decided to use export as sample and import data back. It didn't work too. Later I recognized that it is intended that exported file can't be used for import - column header names, IDs, ... I updated my import file and touched issue that values in some columns were not found even exported before. Nowadays I know that import requires key values not names (e.g. type of port etc.). I'm able to import everything I wish nowadays. But I spent days with learning of it. During learning I found that same issue is happening to newcomers over and over (search discussions and google). I asked my friends who shown me Netbox, they had same issue in past... So I believe it is time to improve the documentation... ### Proposal I propose to update Bulk Import (CSV/YAML) chapter in documentation: Clearly state that export and import are independent operations and it is intended, that output of export can't be directly used for import. Describe that import is not capable to update existing rows up to 3.3.x. For 3.4.x update will work. Describe key points about import file (mainly for CSV): - supported columns are described on import page - column names are lower case, even exported ones use different casing - some columns must match list of values - available values are shown when hovering question mark right on row - values from export usually do not work, you MUST check list Add screenshot of one import page with marking points above and show related example import file. ### Use case Time saving for every newcomer. ### Database changes None ### External dependencies None
adam added the type: feature label 2025-12-29 20:21:31 +01:00
adam closed this issue 2025-12-29 20:21:31 +01:00
Author
Owner

@cyberndj commented on GitHub (Dec 1, 2022):

@jnovak-netsystemcz Exporting to do an import has been discussed before with some great debate.
TLDR; Exporting takes machine data and presents it in a (more) human readable format. Importing takes a human readable format and imports it into a machine/database format. You will have to do your own csv modification to take exported data and import it back into NetBox.

To aid the Devs in accepting your FR, may I suggest you propose some potential verbiage update/change for the docs to make it more (NetBox) newby friendly.

@cyberndj commented on GitHub (Dec 1, 2022): @jnovak-netsystemcz Exporting to do an import has been discussed before with some great debate. TLDR; Exporting takes machine data and presents it in a (more) human readable format. Importing takes a human readable format and imports it into a machine/database format. You will have to do your own csv modification to take exported data and import it back into NetBox. To aid the Devs in accepting your FR, may I suggest you propose some potential verbiage update/change for the docs to make it more (NetBox) newby friendly.
Author
Owner

@jnovak-netsystemcz commented on GitHub (Dec 1, 2022):

OK, I will prepare doc update proposal.

BTW I'm afraid that with new "import with update" feature (in beta) users will ask for export which works with update seamlessly and it is not there. I plan to raise another change request for it.

@jnovak-netsystemcz commented on GitHub (Dec 1, 2022): OK, I will prepare doc update proposal. BTW I'm afraid that with new "import with update" feature (in beta) users will ask for export which works with update seamlessly and it is not there. I plan to raise another change request for it.
Author
Owner

@urobasa commented on GitHub (Jan 9, 2023):

click to Prefixes
click to Export
select All Data(csv)
save file
select Import
click CSV File Upload
click select File
select same save file (4)
error - (CSV file Unexpected column header "Prefix" found.)
Expected Behavior
What did you expect to happen?

The export file passes validation as a valid import file
Column names are the same in export file and import file
Observed Behavior
What happened instead?

CSV file Unexpected column header "Prefix" found.

@urobasa commented on GitHub (Jan 9, 2023): click to Prefixes click to Export select All Data(csv) save file select Import click CSV File Upload click select File select same save file (4) error - (CSV file Unexpected column header "Prefix" found.) Expected Behavior What did you expect to happen? The export file passes validation as a valid import file Column names are the same in export file and import file Observed Behavior What happened instead? CSV file Unexpected column header "Prefix" found.
Author
Owner

@jeremystretch commented on GitHub (Mar 16, 2023):

What did you expect to happen?
The export file passes validation as a valid import file

This is an incorrect presumption. Import data must be formatted specifically for NetBox to understand, whereas export data must be formatted in a way that's as broad usable as possible, as the recipient system is unknown. Exporting data in the same format as is required for import would make it much less usable externally, which is the primary purpose of exporting data. This has been discussed many times.

I'm going to close this issue as it was incorrectly opened as a feature request. If anyone would like to propose specific improvements to the documentation, please do so by proposing a new documentation change for discussion.

@jeremystretch commented on GitHub (Mar 16, 2023): > What did you expect to happen? > The export file passes validation as a valid import file This is an incorrect presumption. Import data must be formatted specifically for NetBox to understand, whereas export data must be formatted in a way that's as broad usable as possible, as the recipient system is unknown. Exporting data in the same format as is required for import would make it much less usable externally, which is the primary purpose of exporting data. This has been discussed many times. I'm going to close this issue as it was incorrectly opened as a feature request. If anyone would like to propose **specific improvements** to the documentation, please do so by proposing a [new documentation change](https://github.com/netbox-community/netbox/issues/new?assignees=&labels=type%3A+documentation&template=documentation_change.yaml) for discussion.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#7302