本地 -> Github 工作 |本地 -> Heroku 不工作

Local -> Github working | Local -> Heroku not working

我的本地系统中有一个 Django 应用程序。

因为我想在传输存储库时忽略 db.sqlite3 文件,所以我将以下内容放入 .gitignore

db.sqlite3

我将它推送到 Github 使用:

git push origin master

当我这样做时,本地系统更新的 db.sqlite3 不会传输到 git.

下一步,我需要使用以下方法将文件从本地系统传输到 Heroku:

git push heroku master

但是,Github的文件好像被复制到了heroku,很奇怪

可能我对git push heroku master的理解不正确

部署方式正在使用heroku cli

检查这种奇怪的工作方式:

  1. 我在 我的本地系统
  2. 的 db.sqlite3 中添加了几个条目
  3. 我对 我的本地系统
  4. 中的代码做了一个小改动
  5. 我在部署到 heroku
  6. 的 Django 应用程序中创建了新条目
  7. 我使用 git push origin master 将应用程序推送到 Github 并检查了 git 中 db.sqlite3 上的时间戳,它没有改变——我从 git 下载了 db.sqlite3 并检查,我在本地系统中创建的新条目不存在。这个不错
  8. 我使用 git push heroku master 将应用程序推送到 Heroku,发现我在第 3 步中创建的条目消失了,第 1 步中的条目是也没有反映。
  9. 我检查了我的 Github db.sqlite3 文件和 heroku db.sqlite3 文件,它们匹配。

我的要求如下:

  1. 我在本地系统中对 db 中的数据所做的更改不应反映在部署到 heroku 的应用程序中(因此我相信。git忽略 -> db.sqlite3)

  2. 结构和应用程序更改应仅用于生产。

有没有正确方向的指示?

我想通了,就像我最后两个查询一样。

我被这个命令误导了:

git update-index --assume-unchanged db.sqlite3

虽然这个明确告诉不要这样做。

对于解决方案,git 和 .gitignore 工作得很好(说明显而易见)。它只需要一个名为 db.sqlite3 的条目,并且您需要确保不将 db.sqlite3 发送到 heroku。您需要使用 db.sqlite3 更新 .gitignore 文件并在 heroku 中使用 PostgreSQL。

当我这样做时,我收到一个名为 django-session not setup 的错误。基本上这意味着 PostgreSQL 还没有准备好使用。您需要确保您已准备好执行以下步骤。


需要记住的几件事 :

  1. 在尝试使用 Django 时,您在本地使用 db.sqlite3 并急于将数据库文件 db.sqlite3 发送到 heroku,并且不要在 .git 中创建条目忽视。 Don't do that.
  2. 在本地,使用 db.sqlite3,部署到 heroku 时,使用 PostgreSQL
  3. 使用pipenv
  4. 创建虚拟环境
  5. 使用pipenv install psycopg2
  6. 使用heroku run bash -a <appname>
  7. 转到 manage.py 文件夹和 运行 python manage.py migrate
  8. 创建您的超级用户python manage.py createsuperuser

这对我有用。我会回来再更新一下。脑残三天

最后继续在 Github 中搜索,我们已经提供了一个问题和解决方案的金矿。 有时我们只需要将点连接起来