Heroku db: принудительно не копировать базу данных - PullRequest
0 голосов
/ 31 марта 2012

Я пытаюсь использовать heroku db:push для загрузки своей локальной базы данных postgresql в общую базу данных объемом 5 МБ, которую предлагает Heroku. Все работает нормально, но база данных не отражает то, что у меня есть в моей локальной БД. Некоторые записи дублируются, а другие просто отсутствуют. Так что, если у меня было три записи на моем локальном БД:

cat, dog, banana

когда я использую db: push, я получаю:

dog, dog, cat

В моей БД около 100 000 записей всего 3-4 МБ. Любая идея, как я могу это исправить?

My database.yml:

развитие:

adapter: postgresql
encoding: unicode
database: myDB
username: myUname
password: myPw
host: localhost
port: 5432
reconnect: true

Производство:

adapter: postgresql
encoding: unicode
database: myDBname
username: myUname
password: myPW
host: ec2-23-21-140-215.compute-1.amazonaws.com

Вся эта информация о БД, которую я взял у

heroku config

, который дает URL базы данных с хостом, именем пользователя и т. Д.

Ответы [ 2 ]

0 голосов
/ 01 апреля 2012

Хотя удобно, использование метчиков (что использует db: push) может не точно копировать ваши данные и может привести к ошибкам при больших передачах.Чтобы импортировать или экспортировать данные из вашей производственной системы, мы настоятельно рекомендуем вместо этого использовать pgbackups.

https://devcenter.heroku.com/articles/import-data-heroku-postgres#from_postgres

https://devcenter.heroku.com/articles/pgbackups#importing_from_a_backup

0 голосов
/ 01 апреля 2012

Push - это, по сути, копия данных, заменяющая уже существующие таблицы (она не затрагивает таблицы, которые не являются частью push).

Я не уверен, почему у вас возникают проблемы, но вы можете сбросить свою БД и нажать, чтобы получить чистую копию того, что вы хотите:

heroku pg:reset
heroku db:push
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...