Heroku: как перенести базу данных из существующего приложения в новое?

#ruby-on-rails #ruby #heroku

#ruby-on-rails #ruby #heroku

Вопрос:

Я хочу создать новое приложение из существующего, используя Heroku.

Я клонировал старое приложение в новое и изменил старое имя на новое в Heroku.

Я перенес переменные среды, используя, как показано ниже:

 $ heroku config -s -a existing-heroku-app > config.txt
$ cat config.txt | tr 'n' ' ' | xargs heroku config:set -a new-heroku-app
  

DATABASE_URL для нового приложение было создано автоматически, когда я клонировал существующее приложение, и я не смог изменить его с помощью опции редактирования в Heroku.

Как перенести базу данных из старого приложения в новое?

Обновлено:

Я попробовал, как показано ниже

 $ heroku pg:copy old::postgres://cbnedduwickhsw:c30d4bf09f3f0e756e6360b9331e8b001c70b6dc5c2c4cee899e71ad972f3f23@ec2-55-165-254-49.compute-1.amazonaws.com:5432/d9egrorbiba5at postgres://gjducqczpmibkn:0c7e9eecead030222792675a076c8980e8bd6edf2f68ba38465fbe978097445a@ec2-184-76-153-63.compute-1.amazonaws.com:5432/dfa8rqk1n47ec0--app new-staging
  

Но есть ошибка

 -bash: postgres://gjducqczpmibkn:0c7e9eecead030222792675a076c8980e8bd6edf2f68ba38465fbe978097445a@ec2-184-76-153-63.compute-1.amazonaws.com:5432/dfa8rqk1n47ec0--app: No such file or directory
  

Комментарии:

1. Вы забыли пробел раньше --app . Просто используйте имена баз данных вместо значений их URL. Пожалуйста, посмотрите мой обновленный ответ

Ответ №1:

Из документации Heroku

Вы также можете перенести непосредственно из базы данных в другое приложение:

$ heroku pg:copy sushi::ORANGE GREEN --app sushi-staging

Это скопировало бы данные из ORANGE базы данных sushi приложения в GREEN базу данных в sushi-staging . Это может быть использовано для копирования производственных данных в промежуточное приложение в целях тестирования.

Обычно на одно приложение Heroku приходится только одна база данных.

Таким образом, вы можете запустить его как

 $ heroku pg:copy old-app::DATABASE_URL DATABASE_URL --app new-app
  

Замените только old-app и new-app своими данными.

Комментарии:

1. Вау! Я ввел вашу команду как есть, только измените названия приложений, и через 1 секунду все данные были перенесены! вероятно, в моем варианте было немного лишнего места (: спасибо. Я отдам вам должное, но я хочу посмотреть, исчезнут ли все эти ошибки электронной почты.