【问题标题】:Running Django and Neo4j on Heroku在 Heroku 上运行 Django 和 Neo4j
【发布时间】:2013-03-06 15:21:32
【问题描述】:

我正在尝试使用 Neo4j 的插件将我的 Django 应用程序部署到 Heroku。 我正在使用Neo4django。在本地,在我的settings.py 中,我有以下内容

NEO4J_DATABASES = {
        'default' : {
            'HOST':'localhost',
            'PORT':7474,
            'ENDPOINT':'/db/data'
        }
    }

但是,在部署到 Heroku 时,我将设置更改为

NEO4J_DATABASES = {
    'default' : {
        'HOST':'<someid>.hosted.neo4j.org',
        'PORT':7281,
        'ENDPOINT':'/db/data/',

    }
}

.. 我显然无法连接到数据库以解决身份验证问题。 我的堆栈跟踪底部的错误:

StatusException: Error [401]: Unauthorized. No permission -- see authorization schemes.

需要授权

.. 即使我添加了 Heroku Neo4j 插件提供的登录名和密码。

以前有没有人遇到过类似的问题? 提前致谢

【问题讨论】:

标签: django heroku authorization neo4j neo4django


【解决方案1】:

Heroku 托管的 Neo4j 具有 Gremlin plugin disabled,这将阻止您运行 neo4django、bulbflow 或任何其他需要 Gremlin 的客户端库。

最常见的解决方案是在 AWS 上运行您自己的 Neo4j 实例,然后连接到该实例。请make it clear to the Neo folks 表示您希望 Heroku 上的 Gremlin 支持 - 我认为由于 Heroku Neo4j 实例的共享性质,它已被禁用,但它绝对会阻碍许多库。

【讨论】:

    【解决方案2】:

    您可以使用heroku config --app your-app 查看 Neo4j 配置 url。只需在代码设置中使用环境变量中的NEO4J_URL。它已经包含基本身份验证的凭据。

    【讨论】:

    • 嗯,这显然解决了身份验证的问题,但我看到了这个错误:self._dict[attr] = ExtensionModule(self._extensions[attr], self._auth) KeyError: 'GremlinPlugin' 显然 Gremlin 插件有问题?
    【解决方案3】:

    我通过使用 graphenedb.com 来托管我的 neo4j 数据库来完成这项工作。

    他们将允许您选择您想要托管的 neo4j 版本。如果您选择 1.9.6(或更早版本),则 gremlin 插件可以正常工作,neo4django 也可以。

    您可以通过他们的网站注册 graphenedb 并在那里创建您的数据库,或者只使用他们的 heroku 插件 (http://blog.graphenedb.com/blog/2014/02/06/our-new-add-on-helps-heroku-users-build-applications-on-top-of-neo4j/),这一切都会为您完成。我发现使用 Web 界面的唯一优势是您还可以获得 neo4j 网络管理员。

    【讨论】:

      猜你喜欢
      • 2012-06-05
      • 2012-02-14
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      相关资源
      最近更新 更多