Django Heroku:更新磁盘上的sqlite数据库

Django Heroku:更新磁盘上的sqlite数据库,django,database,sqlite,heroku,Django,Database,Sqlite,Heroku,我有一个django应用程序(一个PoC,不是最终产品),它有一个后端库,使用SQLite数据库获取处理所需的数据-只读。SQLite数据库是repo的一部分,在通常的部署过程中部署到Heroku。这很好用 现在,我收到了允许通过django管理界面更新该数据库的要求。请注意,这不是django管理的数据库,所以从django的角度来看,这只是一个二进制文件 我可以允许a来处理这个问题,覆盖数据库;我想这在一个自我管理的服务器上可以很好地工作,但是我在Heroku上,这里有(请注意,尽管在SQL

我有一个django应用程序(一个PoC,不是最终产品),它有一个后端库,使用SQLite数据库获取处理所需的数据-只读。SQLite数据库是repo的一部分,在通常的部署过程中部署到Heroku。这很好用

现在,我收到了允许通过django管理界面更新该数据库的要求。请注意,这不是django管理的数据库,所以从django的角度来看,这只是一个二进制文件

我可以允许a来处理这个问题,覆盖数据库;我想这在一个自我管理的服务器上可以很好地工作,但是我在Heroku上,这里有(请注意,尽管在SQLite用作web应用程序数据库的上下文中对此进行了解释,但这不是我的情况:我的SQLite不是我的web应用程序数据库。但限制条件是相同的:我不能期望写入web应用程序的文件系统,也不能保证运行的web应用程序实际可以看到新数据)

我可以想出其他选择,但都有缺点:

  • 将SQLite数据库放在另一台服务器(“媒体”服务器)中,并远程访问它:这将严重影响性能。此外,通过网络访问SQLite数据库
  • 为客户创建一个部署脚本,以便通过通常的部署机制上载数据库。由于客户在技术上不适合,并且我无法提供直接支持,因此这是不可行的
  • 而且可能是最简单的选择:从Heroku迁移到一个自我管理的服务器,这样我就可以实现这个快速而肮脏的上传,而不会有太多复杂的问题

你以前有没有遇到过这样的问题?你还有其他建议吗?

如果你需要Heroku提供的运行web应用的多个动态系统,那么SQLite是一个错误的工具。如果你不需要,而且很难从SQLite中切换,那么一些基本的django托管,比如WebPosition,似乎是一个不错的选择。@Anentropic:不幸的是,客户可以处理的唯一数据是SQLITE。要求不明确“允许通过django管理界面更新此数据库。请注意,这不是django管理的数据库,因此从django的角度来看,这只是一个二进制文件”,这表明您的备选方案1)是一种方法。。。让Django将媒体文件上载到S3。关于通过网络访问SQLite的担忧不适用于您的应用程序,因为它没有将其视为db@Anentropic:当然它是一个数据库,它不是webapp数据库,而是一个库用来执行模糊计算的数据库