我在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中看到我的表?
答案 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