2015-12-04 3 views
1

У меня есть версия dev и производственная версия, работающая в django.Правильный способ миграции базы данных postgres?

Я недавно начал заполнять его множеством данных и обнаружил, что django loaddata пытается загрузить все в память, прежде чем добавлять его в db, и мои файлы будут слишком большими для этого.

Каков правильный способ вывести мои данные с моей машины Dev на мое производство?

я сделал ...

pg_dump -U user -W db ./filename.sql 

, а затем на сервере я сделал ...

psql dbname < filename.sql 

Похоже, это сработало, все данные есть, но он придумал с некоторыми ошибками, такими как

relation xxx already exists 
constrain xxx for relation xxx already exists 

и там было довольно мало, но, как я сказал, что все, кажется, есть. Правильно ли это?

Редактировать: У меня есть на рабочем месте база данных с информацией, и я не хочу обрезать таблицы перед импортом.

ответ

1

Это скрипт, который я использую:

pg_dump -d DATABASE_NAME -U postgres --format plain --inserts > /FILE.sql 

Edit: Как говорится в комментариях, что вы не хотите, усечение таблицы перед импортом, вы не можете сделать этот тип импорта в вашей продукции база данных. Я предлагаю удалить вашу производственную базу данных перед импортом дампа базы данных dev.

+0

Если я не ошибаюсь, это касается только стороны дампа, а не загрузки в другую машину, верно? – deltaskelta

+0

@deltaskelta Да, вы проверяете, что перед импортом у вас есть пустая база данных? –

+0

нет, это вещь. Я хотел бы иметь возможность писать через базу данных с уже существующими в ней материалами. Я мог бы опорожнить его, но это было бы больно каждый раз, когда я хотел бы обновить свою производственную среду – deltaskelta

Смежные вопросы