debian-mirror-gitlab/doc/user/project/settings/import_export.md

192 lines
8 KiB
Markdown
Raw Normal View History

2020-10-24 23:57:45 +05:30
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference, howto
---
2016-08-24 12:49:21 +05:30
# Project import/export
2020-06-23 00:09:42 +05:30
> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/3050) in GitLab 8.9.
2020-03-13 15:44:24 +05:30
> - From GitLab 10.0, administrators can disable the project export option on the GitLab instance.
Existing projects running on any GitLab instance or GitLab.com can be exported with all their related
data and be moved into a new GitLab instance.
The **GitLab import/export** button is displayed if the project import option is enabled.
See also:
- [Project import/export API](../../../api/project_import_export.md)
2020-04-22 19:07:51 +05:30
- [Project import/export administration Rake tasks](../../../administration/raketasks/project_import_export.md) **(CORE ONLY)**
2020-05-24 23:13:21 +05:30
- [Group import/export](../../group/settings/import_export.md)
2020-04-08 14:13:33 +05:30
- [Group import/export API](../../../api/group_import_export.md)
2020-03-13 15:44:24 +05:30
To set up a project import/export:
2020-10-24 23:57:45 +05:30
1. Navigate to **Admin Area > Settings > Visibility and access controls**.
2020-03-13 15:44:24 +05:30
1. Scroll to **Import sources**
1. Enable desired **Import sources**
## Important notes
Note the following:
2020-05-24 23:13:21 +05:30
- Imports from a newer version of GitLab are not supported.
The Importing GitLab version must be greater than or equal to the Exporting GitLab version.
2020-03-13 15:44:24 +05:30
- Imports will fail unless the import and export GitLab instances are
compatible as described in the [Version history](#version-history).
- Exports are stored in a temporary [shared directory](../../../development/shared_files.md)
and are deleted every 24 hours by a specific worker.
- Group members are exported as project members, as long as the user has
2020-04-08 14:13:33 +05:30
maintainer or admin access to the group where the exported project lives.
- Project members with owner access will be imported as maintainers.
2020-10-24 23:57:45 +05:30
- Using an admin account to import will map users by primary email address (self-managed only).
2020-03-13 15:44:24 +05:30
Otherwise, a supplementary comment is left to mention that the original author and
the MRs, notes, or issues will be owned by the importer.
- If an imported project contains merge requests originating from forks,
then new branches associated with such merge requests will be created
within a project during the import/export. Thus, the number of branches
in the exported project could be bigger than in the original project.
2016-08-24 12:49:21 +05:30
2016-09-29 09:46:39 +05:30
## Version history
2020-07-28 23:09:34 +05:30
### 13.0+
2020-05-24 23:13:21 +05:30
Starting with GitLab 13.0, GitLab can import bundles that were exported from a different GitLab deployment.
This ability is limited to two previous GitLab [minor](../../../policy/maintenance.md#versioning)
releases, which is similar to our process for [Security Releases](../../../policy/maintenance.md#security-releases).
For example:
| Current version | Can import bundles exported from |
|-----------------|----------------------------------|
| 13.0 | 13.0, 12.10, 12.9 |
| 13.1 | 13.1, 13.0, 12.10 |
### 12.x
Prior to 13.0 this was a defined compatibility table:
2020-03-13 15:44:24 +05:30
2020-04-08 14:13:33 +05:30
| Exporting GitLab version | Importing GitLab version |
| -------------------------- | -------------------------- |
2020-07-28 23:09:34 +05:30
| 11.7 to 12.10 | 11.7 to 12.10 |
2020-04-08 14:13:33 +05:30
| 11.1 to 11.6 | 11.1 to 11.6 |
| 10.8 to 11.0 | 10.8 to 11.0 |
| 10.4 to 10.7 | 10.4 to 10.7 |
| 10.3 | 10.3 |
| 10.0 to 10.2 | 10.0 to 10.2 |
| 9.4 to 9.6 | 9.4 to 9.6 |
| 9.2 to 9.3 | 9.2 to 9.3 |
| 8.17 to 9.1 | 8.17 to 9.1 |
| 8.13 to 8.16 | 8.13 to 8.16 |
| 8.12 | 8.12 |
| 8.10.3 to 8.11 | 8.10.3 to 8.11 |
| 8.10.0 to 8.10.2 | 8.10.0 to 8.10.2 |
| 8.9.5 to 8.9.11 | 8.9.5 to 8.9.11 |
| 8.9.0 to 8.9.4 | 8.9.0 to 8.9.4 |
2017-08-17 22:00:37 +05:30
2020-03-13 15:44:24 +05:30
Projects can be exported and imported only between versions of GitLab with matching Import/Export versions.
For example, 8.10.3 and 8.11 have the same Import/Export version (0.1.3)
and the exports between them will be compatible.
2016-09-29 09:46:39 +05:30
2020-05-24 23:13:21 +05:30
## Between CE and EE
You can export projects from the [Community Edition to the Enterprise Edition](https://about.gitlab.com/install/ce-or-ee/) and vice versa.
This assumes [version history](#version-history) requirements are met.
If you're exporting a project from the Enterprise Edition to the Community Edition, you may lose data that is retained only in the Enterprise Edition. For more information, see [downgrading from EE to CE](../../../README.md).
2016-08-24 12:49:21 +05:30
## Exported contents
The following items will be exported:
- Project and wiki repositories
- Project uploads
2020-07-28 23:09:34 +05:30
- Project configuration, excluding integrations
2020-04-22 19:07:51 +05:30
- Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, time tracking,
2016-08-24 12:49:21 +05:30
and other project entities
2020-04-22 19:07:51 +05:30
- Design Management files and data
2018-05-09 12:01:36 +05:30
- LFS objects
2019-10-12 21:52:04 +05:30
- Issue boards
2020-04-08 14:13:33 +05:30
- Pipelines history
2016-08-24 12:49:21 +05:30
The following items will NOT be exported:
- Build traces and artifacts
2017-08-17 22:00:37 +05:30
- Container registry images
- CI variables
2019-02-15 15:39:39 +05:30
- Webhooks
2017-08-17 22:00:37 +05:30
- Any encrypted tokens
2019-09-30 21:07:59 +05:30
- Merge Request Approvers
- Push Rules
- Awards
NOTE: **Note:**
For more details on the specific data persisted in a project export, see the
2020-04-08 14:13:33 +05:30
[`import_export.yml`](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/import_export/project/import_export.yml) file.
2016-08-24 12:49:21 +05:30
## Exporting a project and its data
2019-09-04 21:01:54 +05:30
1. Go to your project's homepage.
2016-08-24 12:49:21 +05:30
2020-10-24 23:57:45 +05:30
1. Click **Settings** in the sidebar.
2016-08-24 12:49:21 +05:30
1. Scroll down to find the **Export project** button:
2019-09-30 21:07:59 +05:30
![Export button](img/import_export_export_button.png)
2016-08-24 12:49:21 +05:30
1. Once the export is generated, you should receive an e-mail with a link to
download the file:
2019-09-30 21:07:59 +05:30
![Email download link](img/import_export_mail_link.png)
2016-08-24 12:49:21 +05:30
1. Alternatively, you can come back to the project settings and download the
2020-03-13 15:44:24 +05:30
file from there, or generate a new export. Once the file is available, the page
2016-08-24 12:49:21 +05:30
should show the **Download export** button:
2019-09-30 21:07:59 +05:30
![Download export](img/import_export_download_export.png)
2016-08-24 12:49:21 +05:30
## Importing the project
2019-09-30 21:07:59 +05:30
1. The GitLab project import feature is the first import option when creating a
2019-09-04 21:01:54 +05:30
new project. Click on **GitLab export**:
2016-08-24 12:49:21 +05:30
2019-09-30 21:07:59 +05:30
![New project](img/import_export_new_project.png)
2016-08-24 12:49:21 +05:30
2019-09-04 21:01:54 +05:30
1. Enter your project name and URL. Then select the file you exported previously:
2016-08-24 12:49:21 +05:30
2019-09-30 21:07:59 +05:30
![Select file](img/import_export_select_file.png)
2016-08-24 12:49:21 +05:30
1. Click on **Import project** to begin importing. Your newly imported project
page will appear soon.
2019-10-12 21:52:04 +05:30
NOTE: **Note:**
If use of the `Internal` visibility level
[is restricted](../../../public_access/public_access.md#restricting-the-use-of-public-or-internal-projects),
all imported projects are given the visibility of `Private`.
2020-03-13 15:44:24 +05:30
2020-06-23 00:09:42 +05:30
NOTE: **Note:**
The maximum import file size can be set by the Administrator, default is 50MB.
As an administrator, you can modify the maximum import file size. To do so, use the `max_import_size` option in the [Application settings API](../../../api/settings.md#change-application-settings) or the [Admin UI](../../admin_area/settings/account_and_limit_settings.md).
2020-07-28 23:09:34 +05:30
### Project import status
You can query an import through the [Project import/export API](../../../api/project_import_export.md#import-status).
As described in the API documentation, the query may return an import error or exceptions.
### Import large projects **(CORE ONLY)**
If you have a larger project, consider using a Rake task, as described in our [developer documentation](../../../development/import_project.md#importing-via-a-rake-task).
2020-03-13 15:44:24 +05:30
## Rate limits
To help avoid abuse, users are rate limited to:
2020-06-23 00:09:42 +05:30
| Request Type | Limit |
| ---------------- | ----------------------------------------- |
| Export | 30 projects per 5 minutes |
| Download export | 10 downloads per project every 10 minutes |
| Import | 30 projects per 5 minutes |