У меня есть Flask веб-приложение, использующее Neo4j. После того, как я обновил Neo4j с версии 3.5.15 до 4.0.1, я начал получать исключения для создания моего ограничения.
Ограничения созданы в моем __init__.py
и выглядят так:
try:
statement=("CREATE CONSTRAINT platform_name ON (p:platform) ASSERT p.name IS UNIQUE")
statement1=("CREATE CONSTRAINT domain_name ON (d:domain) ASSERT d.name IS UNIQUE")
statement2=("CREATE CONSTRAINT quality_name ON (q:quality) ASSERT q.name IS UNIQUE")
statement3=("CREATE CONSTRAINT username ON (u:user) ASSERT u.username IS UNIQUE")
statement4=("CREATE CONSTRAINT aspect_name ON (a:aspect) ASSERT a.name IS UNIQUE")
statement5=("CREATE CONSTRAINT quality_group_name ON (g:quality_group) ASSERT g.name IS UNIQUE")
with driver.session() as session:
tx=session.begin_transaction()
tx.run(statement)
tx.commit()
tx=session.begin_transaction()
tx.run(statement1)
tx.commit()
tx=session.begin_transaction()
tx.run(statement2)
tx.commit()
tx=session.begin_transaction()
tx.run(statement3)
tx.commit()
tx=session.begin_transaction()
tx.run(statement4)
tx.commit()
tx=session.begin_transaction()
tx.run(statement5)
tx.commit()
session.close()
except:
print("error:",sys.exc_info())
pass
Я получаю сообщение об ошибке:
(, ClientError («Эквивалентное ограничение уже существует,« Constraint (UNIQUE,: platform (name)) ».»),)
Странно то, что я получаю эту ошибку даже при первом запуске на новой базе данных или даже после того, как я вручную отбрасываю все ограничения из графика.