本地 -> 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
检查这种奇怪的工作方式:
- 我在 我的本地系统
的 db.sqlite3 中添加了几个条目
- 我对 我的本地系统
中的代码做了一个小改动
- 我在部署到 heroku
的 Django 应用程序中创建了新条目
- 我使用 git push origin master 将应用程序推送到 Github 并检查了 git 中 db.sqlite3 上的时间戳,它没有改变——我从 git 下载了 db.sqlite3 并检查,我在本地系统中创建的新条目不存在。这个不错
- 我使用 git push heroku master 将应用程序推送到 Heroku,发现我在第 3 步中创建的条目消失了,第 1 步中的条目是也没有反映。
- 我检查了我的 Github db.sqlite3 文件和 heroku db.sqlite3 文件,它们匹配。
我的要求如下:
我在本地系统中对 db 中的数据所做的更改不应反映在部署到 heroku 的应用程序中(因此我相信。git忽略 -> db.sqlite3)
结构和应用程序更改应仅用于生产。
有没有正确方向的指示?
我想通了,就像我最后两个查询一样。
我被这个命令误导了:
git update-index --assume-unchanged db.sqlite3
虽然这个明确告诉不要这样做。
对于解决方案,git 和 .gitignore 工作得很好(说明显而易见)。它只需要一个名为 db.sqlite3 的条目,并且您需要确保不将 db.sqlite3 发送到 heroku。您需要使用 db.sqlite3 更新 .gitignore 文件并在 heroku 中使用 PostgreSQL。
当我这样做时,我收到一个名为 django-session not setup 的错误。基本上这意味着 PostgreSQL 还没有准备好使用。您需要确保您已准备好执行以下步骤。
需要记住的几件事 :
- 在尝试使用 Django 时,您在本地使用 db.sqlite3 并急于将数据库文件 db.sqlite3 发送到 heroku,并且不要在 .git 中创建条目忽视。
Don't do that
.
- 在本地,使用 db.sqlite3,部署到 heroku 时,使用 PostgreSQL
- 使用pipenv
创建虚拟环境
- 使用
pipenv install psycopg2
- 使用
heroku run bash -a <appname>
- 转到 manage.py 文件夹和 运行
python manage.py migrate
- 创建您的超级用户
python manage.py createsuperuser
这对我有用。我会回来再更新一下。脑残三天
最后继续在 Github 中搜索,我们已经提供了一个问题和解决方案的金矿。 有时我们只需要将点连接起来。
我的本地系统中有一个 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
检查这种奇怪的工作方式:
- 我在 我的本地系统 的 db.sqlite3 中添加了几个条目
- 我对 我的本地系统 中的代码做了一个小改动
- 我在部署到 heroku 的 Django 应用程序中创建了新条目
- 我使用 git push origin master 将应用程序推送到 Github 并检查了 git 中 db.sqlite3 上的时间戳,它没有改变——我从 git 下载了 db.sqlite3 并检查,我在本地系统中创建的新条目不存在。这个不错
- 我使用 git push heroku master 将应用程序推送到 Heroku,发现我在第 3 步中创建的条目消失了,第 1 步中的条目是也没有反映。
- 我检查了我的 Github db.sqlite3 文件和 heroku db.sqlite3 文件,它们匹配。
我的要求如下:
我在本地系统中对 db 中的数据所做的更改不应反映在部署到 heroku 的应用程序中(因此我相信。git忽略 -> db.sqlite3)
结构和应用程序更改应仅用于生产。
有没有正确方向的指示?
我想通了,就像我最后两个查询一样。
我被这个命令误导了:
git update-index --assume-unchanged db.sqlite3
虽然这个
对于解决方案,git 和 .gitignore 工作得很好(说明显而易见)。它只需要一个名为 db.sqlite3 的条目,并且您需要确保不将 db.sqlite3 发送到 heroku。您需要使用 db.sqlite3 更新 .gitignore 文件并在 heroku 中使用 PostgreSQL。
当我这样做时,我收到一个名为 django-session not setup 的错误。基本上这意味着 PostgreSQL 还没有准备好使用。您需要确保您已准备好执行以下步骤。
需要记住的几件事 :
- 在尝试使用 Django 时,您在本地使用 db.sqlite3 并急于将数据库文件 db.sqlite3 发送到 heroku,并且不要在 .git 中创建条目忽视。
Don't do that
. - 在本地,使用 db.sqlite3,部署到 heroku 时,使用 PostgreSQL
- 使用pipenv 创建虚拟环境
- 使用
pipenv install psycopg2
- 使用
heroku run bash -a <appname>
- 转到 manage.py 文件夹和 运行
python manage.py migrate
- 创建您的超级用户
python manage.py createsuperuser
这对我有用。我会回来再更新一下。脑残三天
最后继续在 Github 中搜索,我们已经提供了一个问题和解决方案的金矿。 有时我们只需要将点连接起来。