Django:跨多台机器进行迁移的身份验证?

时间:2015-03-03 16:25:10

标签: python django django-migrations

我一直在本地开发Django应用程序,现在是时候将它部署到临时机了。

登台计算机上的My Postgres数据库具有与本地计算机不同的用户名和密码。

我在远程计算机上运行了Django应用程序,但数据库尚未初始化。

我认为我应该使用migrate执行此操作,因此我尝试运行:

$ python manage.py migrate

但我看到以下错误:

django.db.utils.OperationalError: FATAL:  no pg_hba.conf entry 
for host "127.0.0.1", user "mylocalusername", database "mylocaldbname"

它失败了,因为它不允许我使用mylocalusername登录。

我认为mylocalusername等必须来自迁移文件?当然,本地用户名不会在登台计算机上的任何其他位置设置,无论是在我的设置文件中,还是在实际的数据库本身上。

如何在登台服务器上设置此数据库?

我想一种方法是删除migrations中的所有内容并创建新的本地迁移。这是我需要做的吗?

我认为迁移应该检查源代码,所以我宁愿不删除所有这些。此外,我想继续在本地工作并更新我的升级和生产机器,所以我需要找到一种可持续的方式来做到这一点。

1 个答案:

答案 0 :(得分:0)

"mylocalusername"来自settings.py文件。

看起来应该是这样的:

   DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': 'mylocaldbname',                      # Or path to database file if using sqlite3.
            # The following settings are not used with sqlite3:
            'USER': 'mylocalusername',
            'PASSWORD': 'password',
            'HOST': 'localhost',                      # Empty for localhost through domain sockets or           '127.0.0.1' for localhost through TCP.
            'PORT': '',                      # Set to empty string for default.
        }
    } 

您可以在postgres数据库中更改它或创建有效用户。