の指定されたキーに一致する一意の制約がないため、テーブルのいずれかのキーに固有の制約が一致しないというエラーが発生します。私は2つのテーブルを持っています:ユーザとアイテム、それに多対1の関係(1人のユーザにとっては多くのアイテム)があります。私はこのすべてを行うにフラスコSQLAlchemyのを使用しています:テーブルを作成するには参照されたテーブル "users"(PostgreSQL)
class ItemModel(db.Model):
__tablename__ = 'items'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(40))
description = db.Column(db.String(80))
price = db.Column(db.Float(precision=2))
emailAddress = db.Column(db.String(40), db.ForeignKey('users.email'))
class UserModel(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer)
email = db.Column(db.String(40), primary_key=True)
name = db.Column(db.String(40))
last_name = db.Column(db.String(40))
items = db.relationship('ItemModel', lazy="dynamic")
を、私は私の「app.py」でこの文を持っている:
@app.before_first_request
def create_database():
print("Creating tables.")
db.create_all()
エラーがある:なしユニーク制約参照されたテーブルユーザのために与えられたキーと一致する。
UserModelの主キーと一致する外部キーがItemModelにあるため、どこが間違っているのかわかりません。どんな提案/ヒントも大歓迎です!
ありがとうございました。
最後のコード 'create_database()'のインデントを修正できますか?それともあなたのコードの中にあるのでしょうか? –
申し訳ありませんが、私は「def」を1つのタブでインデントすることを意味していました。それを私が直した。 私が注目した興味深いものは、「UserModel」の「電子メール」を除いてすべてを削除したときです。それは正常に機能したので、私はその問題を回避しようとしています。 – Zain
Flask-SQLAlchemyを使用していませんが、SQLでは、まず 'users'テーブルを作成しなければなりません。 –