Heroku pg:拉不能填充架构

Chr*_*ice 4 windows postgresql heroku heroku-toolbelt

所以,我读过的文件pg:pull,但似乎无法得到它的工作.当我使用正确的参数运行命令时,将获取我的Heroku数据库并创建本地数据库,但架构未在本地填充; 例如,没有创建表,没有设置触发器,没有约束,没有数据等.

这是heroku pg:info我的数据库的日志:

=== HEROKU_POSTGRESQL_ORANGE_URL (DATABASE_URL)
Plan:        Hobby-dev
Status:      Available
Connections: 1
PG Version:  9.3.3
Created:     2014-04-02 19:24 UTC
Data Size:   7.4 MB
Tables:      6
Rows:        1376/10000 (In compliance)
Fork/Follow: Unsupported
Rollback:    Unsupported
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的命令:

PGUSER=postgres PGPASSWORD=password heroku pg:pull HEROKU_POSTGRESQL_ORANGE mylocaldb --app myappname

我无法弄清楚如何设置环境变量PGUSERPGPASSWORD(如果有人能指出我在正确的方向,那么你将获得+1.我读到这个问题并回答无济于事).

mylocaldb 已创建,但未填充架构.

这是pg_dump命令运行后的一次:

pg_dump: reading schemas
pg_dump: reading user-defined tables
pg_dump: reading extensions
pg_dump: reading user-defined functions
pg_dump: reading user-defined types
pg_dump: reading procedural languages
pg_dump: reading user-defined aggregate functions
pg_dump: reading user-defined operators
pg_dump: reading user-defined operator classes
pg_dump: reading user-defined operator families
pg_dump: reading user-defined text search parsers
pg_dump: reading user-defined text search templates
pg_dump: reading user-defined text search dictionaries
pg_dump: reading user-defined text search configurations
pg_dump: reading user-defined foreign-data wrappers
pg_dump: reading user-defined foreign servers
pg_dump: reading default privileges
pg_dump: reading user-defined collations
pg_dump: reading user-defined conversions
pg_dump: reading type casts
pg_dump: reading table inheritance information
pg_dump: reading event triggers
pg_dump: finding extension members
pg_dump: finding inheritance relationships
pg_dump: reading column info for interesting tables
pg_dump: finding the columns and types of table "phrases"
pg_dump: finding default expressions of table "phrases"
pg_dump: finding the columns and types of table "users"
pg_dump: finding default expressions of table "users"
pg_dump: finding the columns and types of table "favorite_phrases"
pg_dump: finding the columns and types of table "favorite_users"
pg_dump: finding the columns and types of table "phrasebooks"
pg_dump: finding default expressions of table "phrasebooks"
pg_dump: finding the columns and types of table "phrasebooks_phrases"
pg_dump: flagging inherited columns in subtables
pg_dump: reading indexes
pg_dump: reading indexes for table "phrases"
pg_dump: reading indexes for table "users"
pg_dump: reading indexes for table "favorite_phrases"
pg_dump: reading indexes for table "favorite_users"
pg_dump: reading indexes for table "phrasebooks"
pg_dump: reading indexes for table "phrasebooks_phrases"
pg_dump: reading constraints
pg_dump: reading foreign key constraints for table "phrases"
pg_dump: reading foreign key constraints for table "users"
pg_dump: reading foreign key constraints for table "favorite_phrases"
pg_dump: reading foreign key constraints for table "favorite_users"
pg_dump: reading foreign key constraints for table "phrasebooks"
pg_dump: reading triggers
pg_dump: reading triggers for table "phrases"
pg_dump: reading triggers for table "users"
pg_dump: reading triggers for table "favorite_phrases"
pg_dump: reading triggers for table "favorite_users"
pg_dump: reading triggers for table "phrasebooks"
pg_dump: reading rewrite rules
pg_dump: reading large objects
pg_dump: reading dependency data
pg_dump: saving encoding = UTF8
pg_dump: saving standard_conforming_strings = on
pg_dump: saving database definition
pg_restore: [archiver] did not find magic string in file header
pg_dump: [custom archiver] WARNING: ftell mismatch with expected position -- fte
ll used
pg_dump: [custom archiver] WARNING: ftell mismatch with expected position -- fte
ll used
pg_dump: dumping contents of table favorite_phrases
pg_dump: [custom archiver] WARNING: ftell mismatch with expected position -- fte
ll used
pg_dump: dumping contents of table favorite_users
pg_dump: [custom archiver] WARNING: ftell mismatch with expected position -- fte
ll used
pg_dump: dumping contents of table phrasebooks
pg_dump: [custom archiver] WARNING: ftell mismatch with expected position -- fte
ll used
pg_dump: dumping contents of table phrasebooks_phrases
pg_dump: [custom archiver] WARNING: ftell mismatch with expected position -- fte
ll used
pg_dump: dumping contents of table phrases
pg_dump: [custom archiver] could not write to output file: Invalid argument
Run Code Online (Sandbox Code Playgroud)

我需要在本地进行某种进一步的配置吗?如果它很重要,我正在使用一个自定义的停止词字典,这个字典tsquery在本机上尚未设置...但我怀疑这将是一个问题,pg_dump虽然...任何帮助非常感谢!

编辑:我刚尝试在我的桌面上运行此命令,另一台配置了所有内容的本地站.没有骨头.我得到了完全相同的结果.下面是which psql所述本地机器的输出,以防万一:

$ which psql
/c/Program Files/PostgreSQL/9.3/bin/psql
Run Code Online (Sandbox Code Playgroud)

Wil*_*ill 9

我写了pg:pullpg:push命令.

pg:pull并且pg:push都使用pg_dump直接命令和管道pg_restore(源代码).不幸的是,pg:push,pull截至2014年9月,这个问题在Windows上存在问题.这些问题并非不可克服,因此如果您稍后再来这个问题,请检查它是否已修复.

这里这里使用env命令我不认为是在Windows上,这就是为什么你必须做PGUSER和PGPASSWORD的东西.然而,原因是需要不同的环境变量.envpg_dumppg_restore

我通过使用popen独立设置命令,然后将它们连接在一起而不是使用管道,从而尝试修复一次.但是,我无法让它工作,不得不停下来.

我很乐意审查任何一路上的补丁并解决这个问题,只是@在向heroku/heroku项目的拉取请求中提及我.

抱歉,我未能解决此问题:(

相反,在修复此问题之前,您可以直接单独使用pg_dumppg_restore命令.它作为一个两步过程更加繁琐,并且必须查找远程凭据,但它可以完成工作.方法中的链接源gen_pg_*_command显示如何使用pg_dumppg_restore.

  • 现在已经一年多了,它现在已经修好了吗? (4认同)