Тестирование 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');
}