coding

Конвертация баз данных SQLite > PostgreSQL

17 апреля 2017 г.

Во время разработки проекта на Django очень удобно пользоваться встроенной базой данных SQLite, она уже настроена, не надо ничего дополнительно устанавливать, остается только сделать миграцию и все, все работает из коробки. Но бывают моменты когда проект наполняется в процессе разработки и в итоге на боевой сервер надо ставить уже базу посерьезнее, а терять имеющиеся данные не очень хочется. Вот инструкция как просто конвертировать базу SQLite в PostgreSQL.

db

1. Устанавливаем необходимые пакеты:

$ sudo apt-get install postgresql postgresql-contrib

 и

$ pip install django psycopg2

2. Настраиваем бд:

$ sudo -u postgres psql 
CREATE DATABASE myproject;
CREATE USER myprojectuser WITH PASSWORD 'password';
ALTER ROLE myprojectuser SET client_encoding TO 'utf8';
ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed';
ALTER ROLE myprojectuser SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;
\q 

3. Делайем дамп имеющейся базы в json формате:

$ ./manage.py dumpdata > dump.json

4. Переключаемся на новую базу PostgreSQL в settings.py:

вместо

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

записываем 

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'myproject',
        'USER': 'myprojectuser',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '',
    }
}

5. Создаем нужные таблицы в бд: 

$ ./manage.py migrate

6. Загружаем ранее сделанный дамп в новую бд: 

$ ./manage.py loaddata dump.json

Все проверяем и радуемся. 

Просмотров - 352

Оставить комментарий

Комментарий будет размещен на сайте после прохождения модерации.

Комментарии

Еще не оставлено ни одного комментария.