【问题标题】:Is it possible to deploy Django with Sqlite?是否可以使用 Sqlite 部署 Django?
【发布时间】:2016-06-07 12:25:00
【问题描述】:

我已经构建了一个使用 sqlite(默认数据库)的 Django 应用程序,但是我找不到任何允许使用 sqlite 进行部署的地方。 Heroku只适用于postgresql,我花了两天时间尝试切换数据库并无法弄清楚,所以我只想用sqlite部署。 (这只是一个小应用程序。)

几个问题:

  • 我可以在任何地方使用 sqlite 进行部署吗?
  • 如果是这样,在哪里/如何?

【问题讨论】:

    标签: python django postgresql sqlite heroku


    【解决方案1】:

    SQLite 是磁盘上的数据库,它对于开发目的非常有用,但是像 Heroku 这样的服务期望您的服务器端代码是无状态的,因此实际上不允许使用 SQLite 等数据库。我想你可以让它工作(只要你在 Heroku 的磁盘上找到一个放置 SQLite 数据库的地方),但每次重新部署时你都会不断丢失数据库的内容。

    特别是对于 Heroku,我会将您重定向到 this link,它解释了如何在 Heroku 上将 Django 与 PostgreSQL 一起使用。

    【讨论】:

      【解决方案2】:

      不要在 heroku 上使用 SQLite。如docs 所述,您将丢失数据:

      SQLite 在内存中运行,并将其数据存储备份到磁盘上的文件中。 虽然这种策略非常适合开发,但 Heroku 的 Cedar 堆栈 有一个临时文件系统。你可以写它,你可以读 从它,但内容将定期清除。如果你要 在 Heroku 上使用 SQLite,您至少会丢失整个数据库 每 24 小时一次。

      即使 Heroku 的磁盘持久运行 SQLite 仍然不会 很合适。由于 SQLite 不作为服务运行,因此每个 dyno 都会 运行单独的运行副本。这些副本中的每一个都需要自己的磁盘 支持的商店。这意味着为您的应用程序供电的每个测功机都会 由于磁盘未同步,因此具有不同的数据集。

      您可以将应用配置为在 Heroku 上运行,而不是在 Heroku 上使用 SQLite Postgres。

      【讨论】:

        【解决方案3】:

        确定你可以使用 sqlite 进行部署......它不是真的推荐,但如果你的网络流量低应该可以正常工作

        您在 settings.py 中将数据库引擎设置为 sqlite ... 只需确保您对为数据库指定的路径具有写入权限

        【讨论】:

        • 这对 Heroku 来说不是真的。 Heroku 有一个临时文件系统,因此不能假设存储在其中的任何内容都是持久的。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-06
        • 1970-01-01
        • 1970-01-01
        • 2011-10-21
        • 1970-01-01
        相关资源
        最近更新 更多