2016-02-24 2 views
-3

Я создал приложение Django, которое использует sqlite (база данных по умолчанию), но я не могу найти нигде, что позволяет развертывать с помощью sqlite. Heroku работает только с postgresql, и я потратил два дня на то, чтобы переключать базы данных и не могу понять, поэтому я хочу просто развернуть с помощью sqlite. (Это просто небольшое приложение.)Возможно ли развертывание Django с Sqlite?

Несколько вопросов:

  • Есть ли где я могу развернуть с SQLite?
  • Если да, то где/как?

ответ

2

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

Для Heroku специально я перенаправляю вас на this link, в котором объясняется, как использовать Django с PostgreSQL на Heroku.

-1

, что вы можете развернуть с SQLite ... его не рекомендуется, но он должен работать нормально, если у вас низкий сетевой трафик

вы установили двигатель базы данных SQLite в settings.py ... просто убедитесь, у вас есть доступ на запись к пути, указанному для вашей базы данных.

+0

Это неправда для Heroku. Heroku имеет эфемерную файловую систему, поэтому нельзя предположить, что сохраненное на ней содержимое сохраняется. – mipadi

1

Не используйте SQLite на герою. Как указано в поле «docs», вы потеряете свои данные:

SQLite запускается в памяти и резервирует хранилище данных в файлах на диске. Хотя эта стратегия хорошо работает для разработки, стек кедра Героку имеет эфемерную файловую систему. Вы можете написать ему, и вы можете прочитать , но содержимое будет очищено периодически. Если бы вы использовали , используйте SQLite на Heroku, вы потеряете всю свою базу данных как минимум один раз каждые 24 часа.

Даже если диски Heroku были постоянными, работая SQLite, все равно не будет быть в хорошей форме. Поскольку SQLite не запускается как служба, каждый динатор будет выполнять отдельную рабочую копию. Каждой из этих копий нужен собственный диск . Это будет означать, что каждый динодействующий ваше приложение будет иметь другой набор данных, так как диски не синхронизированы.

Вместо использования SQLite на Heroku вы можете настроить свое приложение для работы на Postgres.

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