我有一个由Heroku服务的Django网站,该网站的模型存储了我过去从事过的项目的数据。我已经在本地运行makemigrations
和migrate
,然后使用git推送到heroku并运行heroku run python3 manage.py migrate
。因此,我的数据库模型和字段已同步,但是我在询问字段值。每当我本地更新模型实例 的字段的值时,我都希望它(数据)与 Heroku 同步,反之亦然-我更新的同步值使用我的 local sqlite3数据库在管理面板中的 Heroku 上。是否有用于更新数据库本身值的命令,或者我缺少某些内容?因为过去一个小时我在互联网上四处寻找如何执行此操作的方法,但是找不到执行该操作的命令。
旁注:我还希望我正在寻找的命令同步新创建的实例,而不仅仅是现有模型实例的数据。
答案 0 :(得分:0)
好,我知道了。
第一步是运行python3 manage.py dumpdata --exclude contenttypes > data.json
。这会将本地数据库数据复制到一个名为data.json的文件中(如果不存在,该文件也由>
创建)。
接下来,git push
进入heroku并运行heroku run python3 manage.py migrate
以取得良好效果。
最后,heroku run python3 manage.py loaddata data.json
。这将转换从本地sqlite3数据库加载的数据,并将其加载到heroku postgre数据库。除非在转储数据时完成翻译。无论如何,这会将heroku数据与本地数据同步。
我还没有测试过将本地数据与heroku数据进行同步,但是我敢肯定它会以相同的方式工作:先从heroku run python3 manage.py dumpdata --exclude contenttypes > data.json
到git fetch
从heroku中进行(我从未取过在将目录与github上的内容进行同步之前,它应该很简单)。
仅此而已。如果我在本地更改了我所从事的项目的名称,更新了上次从事该项目的日期,并在工作过程中写了几段,我不想在heroku shell中重做所有这些事情,然后我通过转储数据,将其推送到heroku并将其加载到那里进行同步。