Тестирование Django+Heroku: как подключиться к тестовой базе данных? ('отказано в разрешении на создание базы данных')

Я делаю свое первое развертывание с django (когда-либо), и я использую Heroku CLI.

При попытке запустить тесты я получаю следующее сообщение: "Получена ошибка при создании тестовой базы данных: отказано в разрешении на создание базы данных"

Сначала я попробовал просто запустить тесты. Затем я попробовал указать текущую базу данных в качестве тестовой (задав те же параметры). Также я попробовал указать Sqlite в качестве тестовой базы данных.

Я рассчитываю иметь временную базу данных для тестирования или использовать для этого текущую базу данных.

Я нашел вариант, который создает пользовательское подключение к базе данных postgress, сделанное только для тестирования. Это кажется слишком сложным, чтобы быть распространенной проблемой. Я также видел что-то на страницах heroku под названием dynos database (временная база данных для тестирования на Ruby), но не смог найти ее ни в дополнениях на странице, ни при попытке сделать это из командной строки (там говорится, что она предназначена только для развертывания в командной строке).

Реализация чего-то вроде того, что вставлено ниже, была бы идеальной, так как она создает базу данных временно, только для тестирования (найдено в разделе Ruby):

https://devcenter.heroku.com/articles/heroku-ci-parallel-test-runs

{
  "addons": [
    "heroku-postgresql:in-dyno",
    "heroku-redis:in-dyno"
  ]
}

В NOD.js есть опция, которая выглядит интересно, но я не знаю, как реализовать ее в терминах django, они утверждали, что мы можем привязываться к текущей базе данных при тестировании.

if (typeof(process.env.DATABASE_URL) !== 'undefined') {
  dbUrl = url.parse(process.env.DATABASE_URL);
}
else if (process.env.NODE_ENV === 'test') {
  dbUrl = url.parse('tcp://postgres:postgres@127.0.0.1:5432/test');
}
else {
  dbUrl = url.parse('tcp://postgres:postgres@127.0.0.1:5432/db');
}
Вернуться на верх