【问题标题】:synchronize the local database with deployed project in Heroku将本地数据库与 Heroku 中部署的项目同步
【发布时间】:2018-05-17 02:30:30
【问题描述】:

当我使用注册帐户Learning Log 登录部署在 Heroku 上的项目时,它重新启动,没有我在本地项目中输入的任何数据。

我知道 Heroku 使用 Postgres,而我的本地数据库是 python 贡献的 sqlite。

此外,我在教程之后忽略了 git 存储库中的*.sqlite3。(撤消忽略时,它不起作用)

我更喜欢在本地工作,将本地数据推送到远程,将远程获取到本地。

如何实现远程与本地同步?

【问题讨论】:

  • 你的意思是你的部署数据库是服务器中的postgres?
  • 是的,dj_database_url.config(default="postgres://localhost"),@seuling
  • 那你为什么不使用本地运行服务器连接那个数据库呢?
  • 能否请您发表评论以回答。 @seuling
  • 抱歉,迟到了。我会发布答案

标签: django heroku


【解决方案1】:

您可以在本地运行服务器中为您的服务器连接数据库。

只需更改服务器 ip 的数据库设置。 (首先你必须在你的本地 ip 中打开 5432 端口)

如下图

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'your_server_db_name',
        'USER': 'your_server_user',
        'PASSWORD': 'your_server_db_pw',
        'HOST': 'your_server_ip',
        'PORT': '5432',
    }
}

然后数据库同步。但是,我不推荐这种方式。每当您迁移/或做某事与数据库有关时,它必须崩溃,因为您不能同时修改代码。

因此,如果您想从真实数据库获得更多活动数据库,您只需使用pg_dump 转储 sql 并将其添加到本地数据库。

【讨论】:

  • 您评论“然后数据库同步”是不正确的。然后,您使用的是相同的数据库,即生产数据库。然后您正确地指出不建议这样做,但基本上您没有给出问题的答案。
  • @moojen 你是对的。 “同步”是错误的词。我只想说,如果在本地服务器中使用生产数据库,则不需要注意本地/生产数据库之间的同步。
猜你喜欢
  • 2020-03-13
  • 2013-02-17
  • 2018-05-15
  • 2015-01-06
  • 1970-01-01
  • 2014-06-17
  • 2015-01-19
  • 1970-01-01
  • 2018-12-13
相关资源
最近更新 更多