Подключение к базе данных MySQL, расположенной по адресу (pythonanywhere.com), из приложения, расположенного по адресу (heroku.com)

Я создал веб-приложение и развернул его на Heroku. Все идет нормально. Теперь мне нужно интегрировать его с базой данных MySQL, которая находится по адресу pythonanywhere.com.

Я попробовал следующую команду (это то, что мне удалось найти при поиске в Google для доступа к удаленной базе данных MySQL из Heroku):

Конфигурация heroku: добавить DATABASE_URL=mysql2://PYTHONANYWHERE_USER:DATABASE-HOST-ADDRESS/DATABASE-NAME--app HEROKU-APP-NAME

Всякий раз, когда я запускаю эту команду из консоли в Heroku, я получаю следующее сообщение:

bash: heroku: команда не найдена

Кто-нибудь пытался подключиться к базе данных pythonanywhere MySQL из Heroku раньше? Можешь пошагово показать, как ты это сделал?

Причина, по которой я хочу получить доступ к базе данных PythonAnywhere (а не просто разместить ее на Heroku), заключается в том, что большая часть серверной части написана на PythonAnywhere и хранится в этой базе данных.

Спасибо,


person Elias    schedule 14.05.2018    source источник
comment
Вы установили CLI Heroku?   -  person Chris    schedule 14.05.2018
comment
Кроме того, почему вы пытаетесь использовать удаленную базу данных на PythonAnywhere? У Heroku есть множество дополнений к базам данных, в том числе те, которые предоставляют MySQL.   -  person Chris    schedule 14.05.2018
comment
Что ты имеешь в виду? Мое приложение развернуто на Heroku.com, и я пытаюсь получить доступ к базе данных PythonAnywhere из Heroku (в облаке)   -  person Elias    schedule 14.05.2018
comment
Причина размещения базы данных на PythonAnywhere заключается в том, что весь внутренний код выполняется там. Мы хотели иметь там и интерфейс, но PythonAnywhere не поддерживал проекты Node.js.   -  person Elias    schedule 14.05.2018
comment
Команда heroku — это интерфейс командной строки Heroku. Вам придется установить его, если вы хотите его использовать.   -  person Chris    schedule 14.05.2018
comment
…Я запутался. Что такое ваш код Node.js, если не внутренний код? (Внешний код почти наверняка не должен общаться с вашей базой данных.)   -  person Chris    schedule 14.05.2018
comment
Прости, Крис, я не совсем понимаю. Я развернул приложение из C9 (в котором интерфейс командной строки Heroku предустановлен). Приложение теперь развернуто в Heroku. Я хочу получить доступ к базе данных PythonAnywhere из Heroku. Должен ли я установить интерфейс командной строки Heroku на PythonAnywhere и запустить команду конфигурации heroku на PythonAnywhere? У меня сложилось впечатление, что я должен запустить эту команду на Heroku.   -  person Elias    schedule 14.05.2018
comment
Простите меня за неясность. Я сделал панель инструментов, которая показывает прогнозы, сделанные искусственной нейронной сетью. Все эти данные находятся в базе данных PythonAnywhere. Я хочу показать эти данные на своей панели инструментов, размещенной на Heroku.   -  person Elias    schedule 14.05.2018
comment
Если вы видите bash: heroku: command not found, значит у вас неправильно установлен интерфейс командной строки Heroku. Я не знаю насчет C9, но если там предустановлен интерфейс командной строки Heroku, то heroku config:add... должен дать вам другой результат.   -  person Chris    schedule 14.05.2018
comment
Спасибо за всю помощь Крис. Я запускаю команду конфигурации heroku из консоли ВНУТРИ Heroku :-)   -  person Elias    schedule 14.05.2018
comment
Ах. Вам никогда не придется запускать heroku оттуда. Попробуйте запустить команду heroku config:add из C9.   -  person Chris    schedule 14.05.2018
comment
Ах. Спасибо - теперь намного лучше! Итак, я получил этот вывод: ---- Настройка DATABASE_URL и перезапуск ⬢ huge-gorge-91345... готово, v5 DATABASE_URL: mysql2://.... ---- Использую ли я process.env.DATABASE_URL как host, когда я подключаюсь к базе данных?   -  person Elias    schedule 14.05.2018


Ответы (1)


Команда heroku предоставляется CLI Heroku и должна быть установлена ​​и запущена с вашего локального компьютера. Запуск команд heroku напрямую с динамометра (например, через heroku run bash) не сработает.

После того, как вы установили DATABASE_URL с помощью heroku config, вы сможете получить к нему доступ из своего кода через process.env.DATABASE_URL.

person Chris    schedule 14.05.2018
comment
Спасибо Крис! Последний вопрос: знаете ли вы, какой будет IP-адрес в: ››heroku config:add DATABASE_URL=mysql2://username:[email protected]/data_base_name --app heroku-app-name‹‹ Я не уверены, что ip==адрес узла базы данных в PythonAnywhere? - person Elias; 14.05.2018
comment
Да, имя хоста должно работать. Обратите внимание, что на все это распространяются правила доступа (на уровне сети и на уровне базы данных), поэтому это может не работать. - person Chris; 14.05.2018