我正在上使用postgress數據庫的,當我運行它,我得到這個錯誤我的生產系統遷移:Django的postgress - 多個主鍵不允許錯誤
django.db.utils.ProgrammingError: multiple primary keys for table "website_experience" are not allowed
但效果很好對我的開發SQL數據庫。下面是我的工作模式:
class Experience (models.Model):
title = models.CharField(max_length = 60)
company = models.CharField(max_length = 60)
city = models.CharField(max_length = 60)
start_date = models.DateField(blank=False, default=datetime.now)
end_date = models.DateField(blank=True, null=True)
description = models.CharField(max_length = 1000)
creative_user = ForeignKey(CreativeUserProfile, models.CASCADE)
起初,場creative_user(這是我的擴展用戶模型)是一個主鍵,但改變了它是一個CreativeUser之間表達一對多的關係一個ForeignKey有許多工作經驗。
這裏是在遷移之前和進行更改,以ForeignKey的
class Migration(migrations.Migration):
dependencies = [
('website', '0003_auto_20170510_1436'),
]
operations = [
migrations.CreateModel(
name='Experience',
fields=[
('title', models.CharField(max_length=60)),
('company', models.CharField(max_length=60)),
('city', models.CharField(max_length=60)),
('startDate', models.DateField()),
('endDate', models.DateField(blank=True, null=True)),
('creative_user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='website.CreativeUserProfile')),
],
),
]
後,這表示經驗模型的創建和creative_user是在模型的主鍵。然後使其成爲一個ForeignKey後遷移看起來像:
class Migration(migrations.Migration):
dependencies = [
('website', '0004_experience'),
]
operations = [
migrations.AddField(
model_name='experience',
name='id',
field=models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
preserve_default=False,
),
migrations.AlterField(
model_name='experience',
name='creative_user',
field =models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.CreativeUserProfile'),
),
]
正如我說,這對開發,但在遷移DB Postgress認爲我有多個主鍵的所有作品。任何人都可以照亮我在做什麼錯誤?
謝謝。