2017-01-24 7 views
0

Я пытаюсь переместить базу данных postgres между машинами при переходе с одной платформы разработки на другую. У меня есть yaml_db gem, установленный на обеих машинах.Как работать с внешними ключами при перемещении базы данных postgres между машинами

На моей старой платформе я:

rake db:scheme:dump 
rake db:data:dump 

Когда я иду в reload базы данных на моей новой машине я обнаружил, что мой 2 десяток foreign_keys мешает мне для загрузки моих данные. Какие у меня варианты?

ответ

0

вы можете использовать pg_dump команду дамп базы данных с помощью:

например:

pg_dump -U <user-name> -h <host> <database> > <file-name>.sql 

pg_dump -U postgres -h 127.0.0.1 database1 > database1.sql 

Затем скопируйте файл на другую машину и запустить следующую команду, чтобы восстановить базу

psql <database-name> < path/to/sql_dump_file 

psql database1 < database1.sql 
1

Вы копируете базу данных, Rails действительно не должен иметь никакого отношения к процессу (и, как вы видите, это просто мешает).

Вместо этого наденьте шляпу DBA и скопируйте базу данных, не беспокоясь о Rails. Сбросьте данные с помощью pg_dump, а затем восстановите данные с помощью pg_restore. Средства резервного копирования/восстановления базы данных знают все о внешних ключах, триггерах, расширениях и любом другом, что инструменты Railsy не понимают.