Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
gitlab-ce
Commits
2c5148b3
Commit
2c5148b3
authored
Oct 06, 2017
by
Stan Hu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve pgloader documentation
[ci skip]
parent
8c4dea25
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
158 additions
and
4 deletions
+158
-4
doc/update/mysql_to_postgresql.md
doc/update/mysql_to_postgresql.md
+158
-4
No files found.
doc/update/mysql_to_postgresql.md
View file @
2c5148b3
...
@@ -44,11 +44,11 @@ Here's what you'll need to have installed:
...
@@ -44,11 +44,11 @@ Here's what you'll need to have installed:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl reconfigure
```
```
1.
Start Unicorn and PostgreSQL so that we c
ould
prepare the schema:
1.
Start Unicorn and PostgreSQL so that we c
an
prepare the schema:
``` bash
``` bash
sudo gitlab-ctl start unicorn
sudo gitlab-ctl start unicorn
sudo gitlab-ctl start posgresql
sudo gitlab-ctl start pos
t
gresql
```
```
1.
Run the following commands to prepare the schema:
1.
Run the following commands to prepare the schema:
...
@@ -57,7 +57,7 @@ Here's what you'll need to have installed:
...
@@ -57,7 +57,7 @@ Here's what you'll need to have installed:
sudo gitlab-rake db:create db:migrate
sudo gitlab-rake db:create db:migrate
```
```
1.
Stop Unicorn
in case it's interfering the next step
:
1.
Stop Unicorn
to prevent other database access from interfering with the loading of data
:
``` bash
``` bash
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop unicorn
...
@@ -92,7 +92,147 @@ Now, you can use pgloader to migrate the data from MySQL to PostgreSQL:
...
@@ -92,7 +92,147 @@ Now, you can use pgloader to migrate the data from MySQL to PostgreSQL:
sudo -u gitlab-psql pgloader commands.load
sudo -u gitlab-psql pgloader commands.load
```
```
1.
Once the migration finishes, start GitLab:
1.
Once the migration finishes, you should see a summary table that looks like
the following:
```
table name read imported errors total time
----------------------------------------------- --------- --------- --------- --------------
fetch meta data 119 119 0 0.388s
Truncate 119 119 0 1.134s
----------------------------------------------- --------- --------- --------- --------------
public.abuse_reports 0 0 0 0.490s
public.appearances 0 0 0 0.488s
public.approvals 0 0 0 0.273s
public.application_settings 1 1 0 0.266s
public.approvers 0 0 0 0.339s
public.approver_groups 0 0 0 0.357s
public.audit_events 1 1 0 0.410s
public.award_emoji 0 0 0 0.441s
public.boards 0 0 0 0.505s
public.broadcast_messages 0 0 0 0.498s
public.chat_names 0 0 0 0.576s
public.chat_teams 0 0 0 0.617s
public.ci_builds 0 0 0 0.611s
public.ci_group_variables 0 0 0 0.620s
public.ci_pipelines 0 0 0 0.599s
public.ci_pipeline_schedules 0 0 0 0.622s
public.ci_pipeline_schedule_variables 0 0 0 0.573s
public.ci_pipeline_variables 0 0 0 0.594s
public.ci_runners 0 0 0 0.533s
public.ci_runner_projects 0 0 0 0.584s
public.ci_sources_pipelines 0 0 0 0.564s
public.ci_stages 0 0 0 0.595s
public.ci_triggers 0 0 0 0.569s
public.ci_trigger_requests 0 0 0 0.596s
public.ci_variables 0 0 0 0.565s
public.container_repositories 0 0 0 0.605s
public.conversational_development_index_metrics 0 0 0 0.571s
public.deployments 0 0 0 0.607s
public.emails 0 0 0 0.602s
public.deploy_keys_projects 0 0 0 0.557s
public.events 160 160 0 0.677s
public.environments 0 0 0 0.567s
public.features 0 0 0 0.639s
public.events_for_migration 160 160 0 0.582s
public.feature_gates 0 0 0 0.579s
public.forked_project_links 0 0 0 0.660s
public.geo_nodes 0 0 0 0.686s
public.geo_event_log 0 0 0 0.626s
public.geo_repositories_changed_events 0 0 0 0.677s
public.geo_node_namespace_links 0 0 0 0.618s
public.geo_repository_renamed_events 0 0 0 0.696s
public.gpg_keys 0 0 0 0.704s
public.geo_repository_deleted_events 0 0 0 0.638s
public.historical_data 0 0 0 0.729s
public.geo_repository_updated_events 0 0 0 0.634s
public.index_statuses 0 0 0 0.746s
public.gpg_signatures 0 0 0 0.667s
public.issue_assignees 80 80 0 0.769s
public.identities 0 0 0 0.655s
public.issue_metrics 80 80 0 0.781s
public.issues 80 80 0 0.720s
public.labels 0 0 0 0.795s
public.issue_links 0 0 0 0.707s
public.label_priorities 0 0 0 0.793s
public.keys 0 0 0 0.734s
public.lfs_objects 0 0 0 0.812s
public.label_links 0 0 0 0.725s
public.licenses 0 0 0 0.813s
public.ldap_group_links 0 0 0 0.751s
public.members 52 52 0 0.830s
public.lfs_objects_projects 0 0 0 0.738s
public.merge_requests_closing_issues 0 0 0 0.825s
public.lists 0 0 0 0.769s
public.merge_request_diff_commits 0 0 0 0.840s
public.merge_request_metrics 0 0 0 0.837s
public.merge_requests 0 0 0 0.753s
public.merge_request_diffs 0 0 0 0.771s
public.namespaces 30 30 0 0.874s
public.merge_request_diff_files 0 0 0 0.775s
public.notes 0 0 0 0.849s
public.milestones 40 40 0 0.799s
public.oauth_access_grants 0 0 0 0.979s
public.namespace_statistics 0 0 0 0.797s
public.oauth_applications 0 0 0 0.899s
public.notification_settings 72 72 0 0.818s
public.oauth_access_tokens 0 0 0 0.807s
public.pages_domains 0 0 0 0.958s
public.oauth_openid_requests 0 0 0 0.832s
public.personal_access_tokens 0 0 0 0.965s
public.projects 8 8 0 0.987s
public.path_locks 0 0 0 0.925s
public.plans 0 0 0 0.923s
public.project_features 8 8 0 0.985s
public.project_authorizations 66 66 0 0.969s
public.project_import_data 8 8 0 1.002s
public.project_statistics 8 8 0 1.001s
public.project_group_links 0 0 0 0.949s
public.project_mirror_data 0 0 0 0.972s
public.protected_branch_merge_access_levels 0 0 0 1.017s
public.protected_branches 0 0 0 0.969s
public.protected_branch_push_access_levels 0 0 0 0.991s
public.protected_tags 0 0 0 1.009s
public.protected_tag_create_access_levels 0 0 0 0.985s
public.push_event_payloads 0 0 0 1.041s
public.push_rules 0 0 0 0.999s
public.redirect_routes 0 0 0 1.020s
public.remote_mirrors 0 0 0 1.034s
public.releases 0 0 0 0.993s
public.schema_migrations 896 896 0 1.057s
public.routes 38 38 0 1.021s
public.services 0 0 0 1.055s
public.sent_notifications 0 0 0 1.003s
public.slack_integrations 0 0 0 1.022s
public.spam_logs 0 0 0 1.024s
public.snippets 0 0 0 1.058s
public.subscriptions 0 0 0 1.069s
public.taggings 0 0 0 1.099s
public.timelogs 0 0 0 1.104s
public.system_note_metadata 0 0 0 1.038s
public.tags 0 0 0 1.034s
public.trending_projects 0 0 0 1.140s
public.uploads 0 0 0 1.129s
public.todos 80 80 0 1.085s
public.users_star_projects 0 0 0 1.153s
public.u2f_registrations 0 0 0 1.061s
public.web_hooks 0 0 0 1.179s
public.users 26 26 0 1.163s
public.user_agent_details 0 0 0 1.068s
public.web_hook_logs 0 0 0 1.080s
----------------------------------------------- --------- --------- --------- --------------
COPY Threads Completion 4 4 0 2.008s
Reset Sequences 113 113 0 0.304s
Install Comments 0 0 0 0.000s
----------------------------------------------- --------- --------- --------- --------------
Total import time 1894 1894 0 12.497s
```
If there is no output for more than 30 minutes, it's possible pgloader encountered an error. See
the [troubleshooting guide](#Troubleshooting) for more details.
1.
Start GitLab:
``` bash
``` bash
sudo gitlab-ctl start
sudo gitlab-ctl start
...
@@ -102,6 +242,20 @@ Now, you can verify that everything worked by visiting GitLab.
...
@@ -102,6 +242,20 @@ Now, you can verify that everything worked by visiting GitLab.
## Troubleshooting
## Troubleshooting
### Permissions
Note that the PostgreSQL user that you use for the above MUST have
**superuser**
privileges. Otherwise, you may see
a similar message to the following:
```
debugger invoked on a CL-POSTGRES-ERROR:INSUFFICIENT-PRIVILEGE in thread
#<THREAD "lparallel" RUNNING {10078A3513}>:
Database error 42501: permission denied: "RI_ConstraintTrigger_a_20937" is a system trigger
QUERY: ALTER TABLE ci_builds DISABLE TRIGGER ALL;
2017-08-23T00:36:56.782000Z ERROR Database error 42501: permission denied: "RI_ConstraintTrigger_c_20864" is a system trigger
QUERY: ALTER TABLE approver_groups DISABLE TRIGGER ALL;
```
### Experiencing 500 errors after the migration
### Experiencing 500 errors after the migration
If you experience 500 errors after the migration, try to clear the cache:
If you experience 500 errors after the migration, try to clear the cache:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment