2015-12-07 2 views
1

Я запускаю Java-приложение на герой. Теперь я пытаюсь получить файл дампа sql из приложения.Как запустить команду postgresql в приложении для запуска приложения heroku?

ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "pg_dump -U postgres -Fc --schema=" + schema + " " + dbName + " >" + path); 

Приведенный выше код отлично работает на локальной машине с окнами.

Вопрос в том, как я могу получить файл дампа из размещенного приложения heroku с помощью конструктора процессов или любого другого метода из приложения java?

заранее спасибо ...

ответ

1

Вы создаете процесс, как представляется, с помощью команд Windows. Вероятность того, что ваш экземпляр Heroku является Windows, я считаю, ноль.

Если вы пытаетесь получить дамп базы данных, вы должны проверить the documentation.

$ heroku pg:backups capture 
$ curl -o latest.dump `heroku pg:backups public-url` 
+0

спасибо steve, но я хочу сделать это программно с помощью java-кода .. –

+0

Вы можете попробовать установить Linux и заставить ProcessBuilder работать над этим. –

+0

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

1

Вы должны использовать команду Linux:

ProcessBuilder builder = new ProcessBuilder("/usr/bin/pg_dump", "-U postgres -Fc --schema=" + schema + " " + dbName + " >" + path); 

Однако, это работает только потому, что пг инструменты установлены на дино для вас. Но таким образом вы не сможете получить доступ к файлу, который вы сбрасываете. Таким образом, вам также потребуется выполнить некоторый код, чтобы загрузить его на S3 или что-то еще.

Также убедитесь, что вы используете правильное имя пользователя и пароль. Скорее всего, это не «постгрес».

+0

Спасибо, кодовое, вы можете отправить мне код для загрузки на S3? –

+0

Используйте AWS SDK для Java https://aws.amazon.com/sdk-for-java/ – codefinger

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