赏金编辑:我已经离开了原来的问题,但希望Postgres似乎沐浴在整个权限崩溃很好的答案。
' 导入和导出客户数据库:现场指南'
我今天刚刚得到这份工作,我们需要使用PostgreSQL 。
客户端有两个主机,他们只使用phpPgAdmin来访问数据库。 没有SSH。
我们需要导出数据,然后将其导入本地开发机器。
明智的方式MySQL我有点失去正确的过程。
有PostgreSQL >>数据库>>导出
从那里得到: 
我一直在写文档,但是要告诉你实话,我找不到一个简单的解释,并且现在不关心db或Postgres。 我们所需要做的就是解决网站PHP。
给我一个大纲/ cheatsheet /指导我的系统pipe理员syblings。
编辑:
改变了这个问题,包括导入数据库的PostgreSQL权限。
就权限而言,设置一个新的PostgreSQL服务器似乎更多。
我特别要求关于phpPgAdmin,因为我的服务器不是localhost&没有GUI。
我觉得这是一个权限的东西http://pgedit.com/public/sql/acl_admin/index.html
澄清没有SSH客户端框。
在整个过程中仍然找不到简明的文档。 直到我有一个更清晰的想法,我才真正避免了任务。 可能会转换成MySQL数据库,以方便。
出口
import
关于权限,只需打开数据库转储(纯文本),并查找它尝试更改当前用户或设置表的所有者的行。 然后,只需进行search/replace,并用新的用户名replace原来的所有者。 D.根本不必担心授予/更改权限:D
原来的db / table所有者是开发人员,我们一直准备发布时需要将其更改为客户帐户。
我们总是使用pg_dump和其他相关的命令行工具从控制台工作,但我期望这些映射到您在Web界面中获得的选项。
phpPgAdmin导出使用pg_dump。 你可以阅读,如果你想知道它在做什么。
您可能还想要将其导出为SQL而不是COPY。 COPY是Postgres的,如果你想尝试使用不同的数据库,你需要SQL。 如果您习惯于不同的数据库,则也更容易理解。
你会得到什么“结构和数据”是一个SQL文件,将开始与数据库表结构,然后所有的数据,然后约束和关键。
正如sascha指出的那样,您可能会遇到权限问题。 我总是发现只删除权限行或将它们注释掉是比较容易的,因为这只是一个开发数据库。 删除/评论/更改其中的“所有者”的行。 喜欢
ALTER TABLE schema.table OWNER TO pguser;
每个CREATE TABLE语句在设置表所有者之后都有其中的一个。
input
如果你有SQL错误(我经常看到,这取决于数据。字符奇怪的string可能是一个痛苦),它可能更容易拆分文件,只是先复制结构,并作为一个标准运行SQL查询。 然后从数据开始,一次导入一张表。 当您将其切分为部分时,可以更容易地find错误。 特别是在处理非常无用的错误信息时。
是的,这是很多复制和粘贴工作,但它完成了工作,可能需要更less的时间,然后将其移植到MySQL,然后不得不更改PHP连接,并从MySQL而不是Postgres获取数据。
PhpPgAdmin和pgadminIII都有能力运行SQL语句。
pgAdminIII – >select数据库 – >select“运行任意SQL查询”button。 PhpPgAdmin – >select数据库 – >select“SQL”链接。
老实说,这是我发现的移动数据库最恼人的方式。 这需要更长的时间,但只有当你没有遇到错误。
运行,不要离开您的托pipe服务提供商。 你希望直接访问数据不仅通过phppgadmin。
在这些情况下phppgadmin(以及phpmyadmin)有一个巨大的问题。 你将无法获得转储。
推理:用PHP和Apache你有一个最大。 执行时间以及运行脚本的内存限制。 现在就执行时间/内存而言,现在可能不是问题,但是随着数据库的增长,你将会遇到它。
为了获得一个良好的转储,你至less需要访问数据库(如果数据库直接暴露给networking,那么应该是SSL安全的)。 通过SSH或直接通过psql,否则我真的不看到一个很好的select得到转储。 phppgadmin(或phpmyadmin)可能会方便浏览数据库做一些改变,做一些(小)select等,但不是如果你需要获得可能的海量数据。
我已经在各种场合使用这两种工具,在执行备份/恢复时,PHP超时或内存使用量过大。
至于指南如何备份原始postgres文档通常是非常好的: http : //www.postgresql.org/docs/8.3/static/backup.html
现在为您的问题如何获得一个漂亮的数据库转储:
我不能强调足以让SSH或psql直接访问主机。 如果您的托pipe服务提供商不会授予您访问权限,请设置本地PostgreSQL创build一个操场数据库,并向其发送您希望使用的pg_dump命令,让他们将其放在SSL和密码保护的目录中,并从那里下载。