我知道这个问题以前有人问过,但是,我的问题和那些问题有点不同。我正在做一个项目,在不同的应用程序中为不同的模型添加了一些属性,我逐渐地进行了迁移。一切都很好。我在一个分叉的公共分支上创建了一个PR,我的客户将我的分支合并到了一个测试分支中。
现在的问题是Heroku无法识别远程服务器上的迁移。
我在本地开发环境中使用sqlite3
,在production environment
中使用PostgreSQL
。Heroku
是为生产环境中的sqlite3还是PostgreSQL
服务?或者主要问题是什么?
- 注意**:我被添加为协作者,无法将本地更改拉到远程服务器,因此无法将本地更改部署到远程服务器。
- 更新**
git remote -v
结果
heroku https://git.heroku.com/tarot-testing.git (fetch)
heroku https://git.heroku.com/tarot-testing.git (push)
master https://github.com/abubakarA-Dot/tarot_juicer.git (fetch)
master https://github.com/abubakarA-Dot/tarot_juicer.git (push)
origin https://github.com/abubakarA-Dot/tarot_juicer.git (fetch)
origin https://github.com/abubakarA-Dot/tarot_juicer.git (push)
upstream https://github.com/enoren5/tarot_juicer.git (fetch)
upstream https://github.com/enoren5/tarot_juicer.git (push)
1条答案
按热度按时间vc6uscn91#
@djangodeveloper和我在同一个团队中,在同一个project on GitHub上工作。
到目前为止,在评论中讨论的在Heroku上迁移数据库的三种方法包括:
1.运行
$ heroku run python manage.py migrate
1.向
Procfile
添加一些参数1.安装第三方(非官方)构建包
下面是另一个需要考虑的方法(我使用的方法):
1.在本地运行远程AWS Postgres数据库。
就像跑步一样简单:
显示配置变量后,您可以在Heroku Jmeter 板中找到包含所有正确变量的DATABASE_URL。要使其正常工作,您需要做的就是将配置变量复制并粘贴到shell中的引号内。要更深入地了解如何使用此技术,您可以查看我们GitHub项目的www.example.com中的文档README.md,标题为:“#3.在本地处理数据库远程示例”。使用这种技术,在本地开发环境中导出数据库后,我运行:
正如你在底部的输出中所看到的,数据库现在已经成功迁移了。在Django管理面板中,我可以看到所有的数据都被保存了。虽然
generators
Web应用程序有一些新的问题需要在OP最初的问题范围之外单独处理。staging
版本的网站现在运行得很好。早在9月份Heroku就开始通知他们的用户免费的PostgreSQL和Hobby dynos正在逐步淘汰,我主动将我们的
staging
和production
PostgreSQL数据库迁移到Basic
层,每个层每月花费$9.00。我没有丢失任何数据,到目前为止过渡是无缝的。虽然评论部分的OP分享了他在另一个Heroku项目中的经验,PostgreSQL变得不可用并遇到数据丢失,但我可以确认,这个项目从来就不是这样的。
为此,请看以下输出:
如您所见,它是在10月2日创建的(早在11月底的转换截止日期之前),并且填充了一些数据。
下面是我们项目的Heroku Jmeter 板的屏幕截图,进一步证明了我们的PostreSQL是在线的,并且配置正确: