Linux的新手。
我正在尝试将.csv复制到PostgreSQL数据库中,
copy address from 'address.csv' delimiter ',' csv header;
我在psql提示符下使用 cd [目录]命令来cd到文件的位置。 操作失败。
我已经关闭了该终端窗口,并在另一个终端窗口cd中找到了数据文件夹,然后从那里打开了psql命令。
\! pwd显示文件存储文件夹的名称/路径。
/home/tommy/virtualenv_folder/code_data/postgresql_csv_files
\! ls会显示文件名,即使使用通配符\! add*也会显示文件名。
stackoverflow.com/questions/16618299/postgres-copy-from-csv-file-no-such-file-or-directory
建议重置search_path。 肯定没有必要在数据文件夹中。 还是?
无论如何,任何指针,将不胜感激。
您应该在copy语句中使用实际路径,例如,
copy address FROM '/home/tommy/virtualenv_folder/code_data/postgresql_csv_files/address.csv'.
还要确保postgres用户对该文件和目录具有读取权限,或者将所有权更改为postgres,即chown postgres:postgres address.csv。 我倾向于创建一个目录并授予所有用户对该目录的读/写访问权限,因此我可以轻松地将数据加载到postgres中,然后以我本人或postgres用户的身份再次将其转储回去,例如,
chmod a+rw /var/import/postgresfiles
search_path与通过数据库内部而不是外部文件系统中的架构进行postgres搜索有关。