Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法访问本地postgreSQL heroku,node.js_Javascript_Ruby On Rails_Node.js_Postgresql_Heroku - Fatal编程技术网

Javascript 无法访问本地postgreSQL heroku,node.js

Javascript 无法访问本地postgreSQL heroku,node.js,javascript,ruby-on-rails,node.js,postgresql,heroku,Javascript,Ruby On Rails,Node.js,Postgresql,Heroku,使用postgreSQL db设置node.js应用程序,所有这些都可以在生产环境中运行 我使用了成功的CLIheroku pg:pull…。我在本地运行postgres 9.4.X,但在本地启动我的应用程序(foreman start)时,我收到一个错误:“错误:关系”test_table“不存在”。我已经按照这里的说明进行了操作:但在本地运行时,我似乎仍然无法访问我的数据库 bash_简介: export PATH="/usr/local/heroku/bin:$PATH" export P

使用postgreSQL db设置node.js应用程序,所有这些都可以在生产环境中运行

我使用了成功的CLI
heroku pg:pull…
。我在本地运行postgres 9.4.X,但在本地启动我的应用程序(foreman start)时,我收到一个错误:“错误:关系”test_table“不存在”。我已经按照这里的说明进行了操作:但在本地运行时,我似乎仍然无法访问我的数据库

bash_简介:

export PATH="/usr/local/heroku/bin:$PATH"
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin
export PATH="/Applications/Postgres93.app/Contents/MacOS/bin:$PATH:$PATH"
控制台错误日志:

15:39:48 web.1 | started with pid 18779
15:39:48 web.1 | Node app is running on port 5000
15:39:52 web.1 | { [error: relation "test_table" does not exist]
15:39:52 web.1 | name: 'error',
15:39:52 web.1 | length: 101,
15:39:52 web.1 | severity: 'ERROR',
15:39:52 web.1 | code: '42P01',
15:39:52 web.1 | detail: undefined,
15:39:52 web.1 | hint: undefined,
15:39:52 web.1 | position: '15',
15:39:52 web.1 | internalPosition: undefined,
15:39:52 web.1 | internalQuery: undefined,
15:39:52 web.1 | where: undefined,
15:39:52 web.1 | schema: undefined,
15:39:52 web.1 | table: undefined,
15:39:52 web.1 | column: undefined,
15:39:52 web.1 | dataType: undefined,
15:39:52 web.1 | constraint: undefined,
15:39:52 web.1 | file: 'parse_relation.c',
15:39:52 web.1 | line: '986',
15:39:52 web.1 | routine: 'parserOpenTable' }
根据第二个参数,您给
pg:pull
的第二个参数是将在本地创建的数据库的名称,该数据库包含应用程序数据的副本。如果您使用heroku网站上给出的示例:

 heroku pg:pull HEROKU_POSTGRESQL_MAGENTA mylocaldb --app sushi
然后将数据转储到名为“mylocaldb”的本地数据库中

根据注释,您的应用程序正在使用环境变量数据库的内容作为连接字符串

由于您说
pg:pull
有效,但您的应用程序找不到数据库中应该存在的表,因此我猜测您的应用程序连接到了错误的数据库。如果您盲目地遵循heroku文档,您可能会这样做:

export DATABASE_URL=postgres:///$(whoami)
该连接字符串会将您连接到与您的用户名同名的数据库。这可能不是您在
pg:pull
命令中使用的名称

要确定正确的数据库名称,请通过命令历史记录查找
pg:pull
中使用的名称,或使用
psql
中的
\l
命令列出所有可用的数据库。然后将环境变量更新为

export DATABASE_URL=postgres:///dbname
其中dbname将是实际名称


postgresql连接字符串中还可以使用许多其他可能的参数(事实上,可以使用多种不同的格式)。有关这些方面的更多信息,请参阅。

创建
测试表
?如何使用架构对数据库进行种子设定/导入/设置?您可能连接到了错误的数据库。您能否显示您的应用程序配置使用的连接字符串,以及您使用的完整pg:pull命令?另外,如果您使用postgresql'psql'命令连接到数据库,您能看到表吗?
pg.connect(process.env.DATABASE_URL,function(err,client,done){…..
我记不起我使用的确切的pg:pull,但是我应该使用什么来确保它工作?本地psql\conninfo是
您作为用户连接到数据库“Oliver”“Oliver”通过端口“5432”的“/tmp”中的socket输入。
好吧,当你这样说时,很简单。我只是没有导出正确的数据库名称。谢谢。