【问题标题】:How to transfer your local sqlite3 data to heroku?如何将本地 sqlite3 数据传输到 heroku?
【发布时间】:2020-04-21 05:00:10
【问题描述】:

我做了一个完美的 django,然后我尝试将它部署到 heroku。一切都很好,但我的本地数据。我的开发数据库是 sqlite3,而不是我在那里配置的 heroku 数据库 url。存储在我的 sqlite3 中的数据.如何将本地数据传输到使用 postgres 的 heroku 应用程序。请你带我过去看看!

这是我的 django 数据库设置

The database url is the heroku postgres url
DATABASES = {
 'default':dj_database_url.config(
        default=env('DATABASE_URL')
    )
}

【问题讨论】:

    标签: django heroku psql


    【解决方案1】:

    可能您需要使用固定装置。为此,首先你需要运行dumpdata:

    python manage.py dumpdata > db.json
    

    然后使用您的代码提交这些固定装置。然后在 Heroku 中,您需要使用 loaddata 加载这些数据。

    python manage.py loaddata db.json 
    

    【讨论】:

    • 不,数据还没有!
    • 你需要在本地机器上运行转储数据,你检查过json里面是否有任何东西吗?
    • 是的,我得到了一些 json 数据,但我在 sqlite3 中看不到任何与我自己的数据相似的数据
    • 现在我遇到了一个新问题。我的 sqlite3 数据库与我的 django 项目在本地连接。没有显示任何数据。
    • python manage.py dumpdata > db.json --database="db.sqlite3"。它给了我这个错误 CommandError: Unable to serialize database: The connection db.sqlite3 doesn't exist跨度>
    【解决方案2】:

    有几件事,我想添加到上一个答案,通过它我能够成功地将我的数据从本地 sqlite db 迁移到 heroku 的 postgresql db。

    首先,将你的数据库转储到一个 json 文件中,如下所示:

    python manage.py dumpdata --exclude contenttypes > db.json
    

    完成后,您需要提交并将这些更改推送到本地以及 heroku 的 git 存储库。这一步是必要的,因为我们需要从这个“db.json”文件中加载数据,并且它应该存在于heroku的repo中。所以,输入这些命令:

    git add .  
    git commit -m "added db"
    git push
    git push heroku main
    

    推送到 heroku main 后,您可能需要运行 heroku run ls,它将列出 repo 中的所有文件并确保您的 db.json 存在。

    最后运行这个将数据加载到heroku中:

    heroku run python3 manage.py loaddata db.json
    

    【讨论】:

      猜你喜欢
      • 2011-04-12
      • 2015-07-20
      • 2020-03-13
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 1970-01-01
      • 2013-02-17
      相关资源
      最近更新 更多