-
Notifications
You must be signed in to change notification settings - Fork 78
Home
In general, the Redmine Importer will take the columns of a .csv file in utf-8 encoding and map them to the fields of issues, and create one issue for each line of the the .csv file. This is a great way to create Redmine issues when you have a large volume of issues to manage.
Installation is described in the README.txt file. Remember to enable the plugin for one or more projects after installation.
Select the "Import" item on the project bar and you will see the first CSV file upload screen. At this screen, you should click the "Choose File" button to select the CSV file to be uploaded. In the example below, the user has already selected "CustomField.csv" and is about to click the "Upload File" button.
Once you click "Upload File", the Column Matching screen will be displayed. At this second screen, you can confirm or specify the mapping from your column headers to the available fields of a Redmine issue, and set other options as described below. If you are importing relationships between issues, see the section on "Unique-valued Column" below. When the options are correct, hit the "Submit" button.
Your issues will be imported and a summary of the number of records inserted and any problems found will be displayed. Note that importing a large number of issues can take a long time.
You should always provide a header row in your CSV file.
The titles in this header row will help Redmine Importer figure out which
column in your CSV files corresponds to which field of the Redmine issue.
It is suggested to always use UTF-8 encoding, comma as separator, and double-quote as delimiter for your CSV file. However, if you are working with CSV files from a legacy source, you can tweak the CSV file format details via the options in the CSV Upload screen.
The maximum supported size of CSV file depends on your database backend; it's 4 megabytes for MySQL.
Here is the list of headers the Redmine will automatically recognize; they correspond to fields of a Redmine issue.
Note that while they are all listed here for completeness, all fields are optional.
You only need to provide data for the items you actually want to set.
- Subject: The main subject line for the issue. Remember not to use multiple lines here.
- Description: The main description. This value can be multiple lines.
- Assignee: The username of the person the ticket should be assigned to. This must exactly match the login as found in the Redmine user account.
- Target version: The target version field. Note that Redmine Importer will not create new versions; you must explcitly add your target versions ahead of time.
- Author: The author of the ticket. It's rarely necessary to supply this, because it will default to the user who does the upload.
- Category: The ticket category. Note that Redmine Importer will not create new categories, you must create all your categories ahead of time.
- Priority: Ticket priority field.
- Tracker: Which Tracker within this project the ticket should be entered in. Normally it's not needed to provide this, since the default Tracker can be set on the upload page.
- Status: The issue status. Redmine Importer will not create new issue statues, you need to configure those ahead of time in the Settings tab.
- Start date: The start date for the issue, expressed as a string. A number of different date formats will work, but the format (common in America) of a two-digit year (e.g., 03/06/03) is not supported. Be sure to use a format with a four-digit year. Most testing has been done with ISO-8601, which is YYYY-MM-DD.
- Due date: The due date for the issue. Same note as above about date formats applies.
- % done: Percentage done for the issue, as an integer between 0-100.
- Estimated time: Estimated time expressed in man-hours.
- Parent task: This allows you to set parent/child task relationships. See below for a description of how this can be done.
- Id: The Redmine issue number. This would only be used when doing issue updates, see Advanced Usage below.
You should be able to use the importer to import custom fields in the same manner as built-in fields. You need to set the custom fields up in the Settings tab ahead of time; Redmine Importer will not create custom field definitions automatically.
In addition to the basic import functions described above, Redmine Importer has a number of more complex use cases that allow it to update existing issues or import relationships between issues as well.
In all of the advanced usage situations, you need to import a CSV file in which one line can refer to either an issue already in Redmine or to a different line of the CSV file being imported.
The safest way to do this is to use the Redmine issue number. If you create a column whose header is "Id", it will automatically be recognized as the Redmine issue number and used to refer to other tickets. However, this is often inconvenient because the Redmine issue number doesn't exist until the issue is created -- that means it's impossible to use it to set up parent/child relationships in a single large import. Furthermore, there's no automatic way to get all the Redmine issue numbers out of Redmine.
Therefore, it's more likely you will want to use another column as a unique value that can be used to refer to your issues.
In cases where you are importing from another automated system, it may be possible to guarantee the description is unique among all tickets, or alternatively, to add a custom field which contains a value guaranteed to be unique across all tickets in the project.
In the vendor/plugins/redmine_importer/test/samples directory, there are some samples import .csv files.
AllStandardFields.csv
This shows a very simple example of importing tasks with parent tasks. When uploading this file, currently you need to set the upload user interface like this: