问题描述
我正在使用 NodeJS 和 neo4j-driver 包。在服务器启动时,我需要确保我的 neo4j 集群中存在特定的数据库。因此我实现了这个方法:
export const ensureAdminDatabaseExists = async () => {
const session = neo4j
.driver(
NEO4J_CONNECTION_URL,neo4j.auth.basic(NEO4J_USERNAME,NEO4J_PASSWORD)
)
.session();
await session.writeTransaction((tx) =>
tx.run('CREATE DATABASE $dbname IF NOT EXISTS',{ dbname: 'admin' })
);
await session.close();
};
如果 Neo4j 中不存在这样的数据库并且我并行多次调用此方法,那么至少有一个事务将失败并显示以下错误消息:
Neo4jError: Failed to create the specified database 'admin': Database already exists.
但是,如果数据库在启动时存在,则没有事务失败。因此,我质疑 CREATE DATABASE
查询是否是事务性的。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)