mirror of
https://github.com/gitlabhq/gitlab-recipes.git
synced 2026-01-09 22:48:04 -05:00
Merge branch 'add/migratemysql' into 'master'
Documentation on migrating from mysql to postgresql First draft on migration of database from mysql to postgresql Any input would be great
This commit is contained in:
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "database/migrate-mysql-to-postgres/mysql-postgresql-converter"]
|
||||
path = database/migrate-mysql-to-postgres/mysql-postgresql-converter
|
||||
url = https://github.com/lanyrd/mysql-postgresql-converter.git
|
||||
98
database/migrate-mysql-to-postgres/README.md
Normal file
98
database/migrate-mysql-to-postgres/README.md
Normal file
@@ -0,0 +1,98 @@
|
||||
***The following howto assumes that you are running Debian 7 (wheezy)***
|
||||
|
||||
# Stop Gitlab
|
||||
|
||||
```bash
|
||||
service gitlab stop
|
||||
```
|
||||
|
||||
# Install postgresql
|
||||
|
||||
```bash
|
||||
sudo apt-get install -y postgresql-9.1 postgresql-client libpq-dev
|
||||
```
|
||||
|
||||
# Initial Setup
|
||||
|
||||
The following initial setup was taken from installation.md from the main installtion doc
|
||||
|
||||
```bash
|
||||
# Login to PostgreSQL
|
||||
sudo -u postgres psql -d template1
|
||||
|
||||
# Create a user for GitLab.
|
||||
template1=# CREATE USER git;
|
||||
|
||||
# Create the GitLab production database & grant all privileges on database
|
||||
template1=# CREATE DATABASE gitlabhq_production OWNER git;
|
||||
|
||||
# Quit the database session
|
||||
template1=# \q
|
||||
|
||||
# Try connecting to the new database with the new user
|
||||
sudo -u git -H psql -d gitlabhq_production
|
||||
```
|
||||
|
||||
# Install postgres gem
|
||||
|
||||
```bash
|
||||
cd ~git/gitlab
|
||||
sudo -u git -H bundle install --deployment --without development test mysql aws
|
||||
```
|
||||
|
||||
# Dump the mysql database
|
||||
|
||||
Make sure you do this as root, and therefore you will also need the root password for mysql as well
|
||||
|
||||
```bash
|
||||
mysqldump --compatible=postgresql --default-character-set=utf8 -r /tmp/gitlabhq_production.mysql -u root -p gitlabhq_production
|
||||
```
|
||||
|
||||
# Convert the mysql to postgres import
|
||||
|
||||
```bash
|
||||
wget https://raw.github.com/lanyrd/mysql-postgresql-converter/master/db_converter.py -O /tmp/db_converter.py
|
||||
python /tmp/db_converter.py /tmp/gitlab_production.mysql /tmp/gitlab_production.psql
|
||||
```
|
||||
|
||||
***Note:*** This was tested using debian 7, with python 2.7.3
|
||||
|
||||
# Import the database
|
||||
|
||||
```bash
|
||||
sudo -u git -H psql -d gitlabhq_production -f /tmp/gitlab_production.psql
|
||||
```
|
||||
|
||||
# Update database config
|
||||
|
||||
```bash
|
||||
cd ~git/gitlab/config
|
||||
sudo -u git -H cp database.yml database.yml.backup
|
||||
sudo -u git -H cp database.yml.postgresql database.yml
|
||||
```
|
||||
|
||||
The defaults from the database.yml should work if you have not made any modifications to the postgres authentication. You may need to change database.yml to suite your config.
|
||||
|
||||
# Start Gitlab service
|
||||
|
||||
```bash
|
||||
service gitlab start
|
||||
service nginx restart
|
||||
```
|
||||
|
||||
# Check application Status
|
||||
|
||||
Check if GitLab and its environment are configured correctly:
|
||||
|
||||
```bash
|
||||
cd ~git/gitlab
|
||||
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
|
||||
```
|
||||
|
||||
To make sure you didn't miss anything run a more thorough check with:
|
||||
|
||||
```bash
|
||||
cd ~git/gitlab
|
||||
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
|
||||
```
|
||||
|
||||
Submodule database/migrate-mysql-to-postgres/mysql-postgresql-converter added at 3aef484c05
Reference in New Issue
Block a user