Ответ 1
createdb
представляет собой оболочку вокруг оператора SQL CREATE DATABASE
и поэтому он должен подключаться к базе данных.
По умолчанию все средства командной строки Postgres пытаются подключиться к базе данных с использованием текущего пользователя операционной системы. Поскольку сообщение об ошибке указывает, что в базе данных нет пользователя с именем root
. Поэтому вам нужно передать имя суперпользователя Postgres, чтобы createdb
смог подключиться. Обычно этот пользователь имеет имя postgres
.
Другой вариант - переключить пользователя Linux на postgres
, если такой пользователь Linux существует.
Я не знаю Heroku, и я не знаю, как вы начали createdb
, но параметр для передачи имени пользователя -U
(для всех программ командной строки Postgres). Поэтому вам понадобится
createdb -U postgres name_of_new_database