Ich suchte nach diesem Problem. Aber mein Postgres-Benutzer hat genug Grant und ich glaube nicht, dass ich einen Schreibfehler habe. Wie auch immer, ich bin Neuling.Postgres: Fehlerbedingung "fk" der Relation "tbl" existiert nicht (mit Yii - PHP)
Ich habe diese Fehlermeldung:
21:38:03 set search_path='public'
21:38:03 ALTER TABLE public.tbl_user DROP CONSTRAINT "fk-user-access-user-id"
21:38:03 ERROR: constraint "fk-user-access-user-id" of relation "tbl_user" does not exist
ich die PhpStorm verwenden. Ich öffne einfach die Datenbankansicht, erweitere die tbl_user
Tabelle, klicke mit der rechten Maustaste und wähle "drop". Und ich habe diesen Fehler in der Konsole bekommen. Also der obige SQL-Befehl von der PHPStorm erzeugt.
Dann habe ich versucht, mit diesen Befehlen manuell auf Ubuntu:
ALTER TABLE tbl_user DROP CONSTRAINT "fk-user-access-user-id"
ALTER TABLE "tbl_user" DROP CONSTRAINT "fk-user-access-user-id"
Aber ich den gleichen Fehler.
Im PhpStorm sehe ich diese Definition:
"fk-user-access-user-id" FOREIGN KEY (access_id) REFERENCES tbl_access (id)
Die tbl_access
Tabelle mit dem primären id Schlüssel vorhanden ist.
Ich verstehe diese Fehlermeldung nicht, weil der "fk-user-access-user-id"
Fremdschlüssel an der tbl_user
und so für mich die 'relation "tbl_user" does not exist'
seltsam ist. Ich verstehe nicht.
Ich habe versucht, ein ähnliches Problem auf StackOverflow zu finden, aber ich gab nach 20x Frage lesen auf.
Der Postgres-Code wurde übrigens vom Yii-Framework generiert.
$this->addColumn('{{%user}}', 'access_id', $this->integer()->notNull()->defaultValue(1)->after('status'));
$this->addForeignKey('fk-user-access-user-id', '{{%user}}', 'access_id', '{{%access}}', 'id');
- erste Reihe bedeutet
access_id
Spalt zu der Benutzertabelle hinzuzufügen. - zweite Zeile: Erstellen Sie einen Fremdschlüssel mit dem 'fk-user ...' - Namen in der Spalte access_id der Tabelle tbl_user table auf die ID-Spalte der Tabelle tbl_access.
Also habe ich diesen PHP-Code verwendet, um diese SQL-Befehle zu generieren. Ich bevorzuge diesen Weg, weil für mich die Migrationsdateien sehr nützlich sind.