mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#8951
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @LHBL2003 on GitHub (Dec 12, 2023).
NetBox version
v3.6.6
Feature type
Change to existing functionality
Proposed functionality
An export in human form is possible. However, this cannot be imported again without adjustments. A "Current View - For Import" and "All Data (CSV) - For Import" button is helpful to enable mass engineering. This is because the exported version is not compatible for import, as the display names are used, among other things. Also in some cases texts are displayed instead of IDs (as far as I remember)
Use case
Advantages:
An import and export via CSV in combination with Excel is a powerful tool for any user to make mass changes without much background knowledge.
This is why CSV import and export can also be found in many industrial software applications to be able to work quickly and efficiently. It takes a lot of time to familiarize yourself with the Rest API or Pyton shell and if you don't use it daily, you need even more time to familiarize yourself again. It is also very time-consuming compared to some Excel work. In Excel you have the solution ready in a few minutes. Regardless of whether you discard, save or rewrite the Excel afterwards, it is much more efficient, especially if it doesn't have to be automated. And if something changes in Netbox, you can react quickly because you can quickly understand the CSV export.
Translated with www.DeepL.com/Translator (free version)
Mass engineering through import and export would be possible. I and many others would use this function more often if it wasn't so inconvenient to re-import something that has been exported.
See also: #7653
I, at least, have been wishing for this function for several years.
Database changes
No response
External dependencies
No response
@jeremystretch commented on GitHub (Dec 12, 2023):
The reason for this is already explained in the wiki. You also haven't cited your use case: Why do you find yourself needing to re-import data from NetBox back into NetBox?
(Also, could you translate the last line under "proposed functionality" above to English please?)
@LHBL2003 commented on GitHub (Dec 12, 2023):
Sorry, the sentence has been translated and the Use case section has been revised.
@jeremystretch commented on GitHub (Dec 14, 2023):
This is already included at the bottom of every import page, along with descriptions of each field and (where applicable) available choices. These are not present in an exported document. It would also not be clear from an exported document that referencing related objects by alternative identifiers (i.e.
slugorid) is possible.It should be considered an anti-pattern to ever need to leave the application to manipulate application data. NetBox already has robust bulk edit abilities: I'll admit these are far from perfect, but you're welcome to submit a feature request if you'd like to propose specific improvements.
I'm not sure what you're referring to by "customize" here, but both the REST API and native Python shell are incredibly powerful tools that far exceed the capabilities of importing a static document. Despite the modest learning curve, they are typically preferable solutions to attempting to effect bulk changes via the re-import of bulk data.
As I've discussed previously, NetBox exports data in a format that it expects to be most useful for other systems. This includes details such as using human-friendly column headers and displaying translated labels for choice fields rather than their raw values. This is done because we naturally assume data being exported from NetBox is destined for someplace other than NetBox.
It would be both foolish of us to ditch these recipient-friendly touches in favor of an approach that serves only a circular workflow where NetBox data is fed directly back into NetBox. I suspect if we spend more time considering your specific use cases above we can arrive at more suitable solutions, or at least a tenable path toward them.
@nopg commented on GitHub (Dec 19, 2023):
Re: "Why do you find yourself needing to re-import data from NetBox back into NetBox?", one use case is having a test/second Netbox server that you would like to move all xyz devices/circuits/whatever into this 'other' instance of Netbox (ie, export from here, import over there, both are 'Netbox').
If the answer/response to that is to use Postgres directly instead, maybe a quick blurb about that being preferred (or whatever method is preferred for this) in the same wiki explaining why this is not supported (without export templates) could be added.
@jeremystretch commented on GitHub (Dec 19, 2023):
Manipulating the database directly is practically never the answer. Most of NetBox's core business and validation logic lives in the Python code, not in the database, and circumventing this logic will inevitably lead to pain and sadness.
As I mentioned above, NetBox provides not one but two powerful APIs for manipulating data programmatically: the high-level REST API and the low-level Python shell. While the later demands comprehension of Python and some development fundamentals, both are supported and both provide far more robust capability than the simple bulk import/export mechanisms.
@jeremystretch commented on GitHub (Jan 12, 2024):
Closing this out as no action is needed.
@polski-g commented on GitHub (Feb 7, 2024):
In some industries, a customer might demand that all of their data be segregated from anyone else's -- in which case, you'd be required to setup and migrate to separate password managers, IPAMs, monitoring infrastructure, etc. This has happened several times in my career. So the target feature would be: an easy way to extract Netbox data from customer A and then re-import it into a standalone Netbox just for that customer.
@jeremystretch commented on GitHub (Feb 7, 2024):
And that is much more readily accomplished using NetBox's powerful, programmatic REST API or Python shell. Trying to do that by re-importing bulk export data would be foolish when far superior tools exist.
@LHBL2003 commented on GitHub (Feb 7, 2024):
I was just thinking yesterday how nice it would be to simply export via csv, quickly customise via Notepad++ and import again quickly and easily.
Descriptions in particular can be adapted much more quickly without having to think too much about it.
But I will take the time to have a look at Powershell in the next few days. But I doubt that this is easier than simply changing values via excel or text file. Especially if each line expects a different value.
Is there a possible Getting starts?
Or do you have some links that I should definitely check out? At least I have experience with Powershell under Windows.