多个数据库--Migrations

时间:2017-02-27 12:57:41

标签: python django postgresql

我在django app中使用了2个postgres数据库。

 'newpostgre': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'new_postgre2',
    'USER': 'tester',
    'PASSWORD': 'password',
    'HOST': 'localhost',
    'PORT': '',
},
'newpostgre2': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'new_postgre3',
    'USER': 'tester',
    'PASSWORD': 'password',
    'HOST': 'localhost',
    'PORT': '',
},

我有一个非常简单的模型

 class Check1(models.Model):
         title = models.CharField(max_length=100)

我跑了

python manage.py migrate --database=newpostgre
python manage.py migrate --database=newpostgre2

当我在postgre中打开new_postgre2(for newpostgre)数据库时,我可以在那里看到我的Check1表。

但是在postgre中我的new_postgre3(对于newpostgre2)数据库中,没有Check1表,只有那些初始迁移。

为什么在成功完成迁移后,我无法在new_postgre3中看到我的表?

1 个答案:

答案 0 :(得分:0)

因为相同的对象名称可以在不同的模式中使用,有时会发生冲突。最佳实践允许许多用户使用一个数据库而不会相互干扰。使用此更改第二个数据库用户并再次检查。我认为这是有效的。

'newpostgre': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'new_postgre2',
    'USER': 'tester',
    'PASSWORD': 'password',
    'HOST': 'localhost',
    'PORT': '',
},
'newpostgre2': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'new_postgre3',
    'USER': 'tester_different',
    'PASSWORD': 'password_different',
    'HOST': 'localhost',
    'PORT': '',
},

python manage.py migrate --database = newpostgre2