sql >> データベース >  >> RDS >> PostgreSQL

テーブルapp_employeeの複数の主キーは許可されていません。

    上記のモデルでは、テーブル「app_employee」の複数の主キーは許可されていません。

    来ない あなたが持っているので

    Aegis_ID = models.UUIDField(primary_key=True, null=False, default=uuid.uuid4, editable=False, serialize=True)
    

    djangoのドキュメントでは、次のように明確に指定されているためです

    Field.primary_key Trueの場合、このフィールドはモデルの主キーです。

    モデルのどのフィールドにもprimary_key=Trueを指定しない場合、Djangoは主キーを保持するAutoFieldを自動的に追加するため、オーバーライドする場合を除いて、どのフィールドにもprimary_key=Trueを設定する必要はありません。デフォルトの主キーの動作。

    primary_key =Trueは、null=Falseおよびunique=Trueを意味します。オブジェクトで許可される主キーは1つだけです。

    私は自分のプロジェクトであなたのモデルを試しましたが、それは完全に正常に機能しています。簡単にするために、他のフィールドを削除しました

    from __future__ import unicode_literals
    from django.db import models
    import uuid
    
    class Employee(models.Model):
        Aegis_ID = models.UUIDField(primary_key=True, null=False,default=uuid.uuid4, editable=False, serialize=True)
        Employee_Number = models.ForeignKey('self', on_delete=models.CASCADE, related_name='Company_Employee_Number', 
                                    null=True, blank=True, max_length=6, help_text="Employee ID")
        Employee_FName = models.CharField(null=True, blank=True, max_length=25, help_text="First Name")
        Employee_LName = models.CharField(null=True, blank=True, max_length=25, help_text="Last Name")
        Employee_Email = models.EmailField(max_length=80, blank=True, help_text="GPM Email address")
    

    そして私がしたとき

    (venv) [email protected]:~/firstsite$ python manage.py makemigrations
    Migrations for 'employee':
    employee/migrations/0001_initial.py
    - Create model Employee
    

    そして

    (venv) [email protected]:~/firstsite$ python manage.py migrate
    Operations to perform:
    Apply all migrations: admin, auth, contenttypes, employee, sessions
    Running migrations:
    Applying employee.0001_initial... OK
    

    したがって、正常に機能しています

    アプリを再作成するか、プロジェクトを最初からやり直すだけで、依存関係の問題などが発生する可能性があります。ただし、モデルEmployeeのコードはすべて問題ありません。



    1. SSHリモートトンネリングでMYSQLERROR2003(HY000)(113)が、SSHトンネルからのtelnetが機能する

    2. PostgreSQL-GROUP BYタイムスタンプ値?

    3. MySQLでの1対1の関係

    4. 親レコードの子レコードのすべての列を返そうとしています