Mic*_*ver 6 windows postgresql pgloader
我在由企业IT严格管理的Windows 7笔记本电脑上运行PostgreSQL 9.6.我没有这台笔记本电脑的管理员权限,但可以通过BeyondTrust授予的提升权利做"很多"事情,包括软件安装.
我使用此数据库从各种来源导入大量中型数据集,并执行一些深入的分析和报告.这些数据集具有疯狂的编码和格式变化,这会在导入时产生挑战.对于一个数据集,我首先将其导入MySQL,从数据中删除违规字符,将其导出回CSV,最后将这些清理后的数据导入PostgreSQL.
作为一个实验,我在运行macOS 10.12的家庭iMac上安装了PostgreSQL 9.6和pg_loader,它能够毫无问题地导入所有数据集.
鉴于所有这些作为背景,我需要使用pg_loader导入各种数据集.但是,该网站不提供Windows安装程序或在Windows上编译它的说明.
任何人都可以指出我的方向之一,从最令人满意到最不可取的列表?
小智 9
这个解决方案对于最初的提问者来说可能有点晚了,但对于那些仍在寻找 Windows 解决方案的人来说。我可以确认我能够使用 Windows 版 Docker 使 pgloader 正常工作。
我的环境是 Windows 10 PC 上的本地 MySQL 安装。我安装了 Windows 版 Docker。然后我通过 docker 安装了 PostgreSQL:
    docker run --name some-postgres -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword -d postgres
最后,我通过 docker 运行 pgloader,使用以下命令将架构和数据从 mysql 提取到 postgres:
    docker run --rm --name pgloader dimitri/pgloader:latest pgloader 
        mysql://root:root@host.docker.internal/my_db_name
        pgsql://postgres:mysecretpassword@host.docker.internal/postgres
这在我的 postgres 实例上创建了一个名为“my_db_name”的模式。“root:root”和“postgres:mysecretpassword”是我的用户名:密码详细信息。这显然是一个生产就绪环境!另一个有用的位“host.docker.internal”是docker对父主机环境的引用。另外,我忽略了 SBCL 警告。
我仍在处理结果。大多数内容看起来都已成功迁移。我缺少触发器(不受支持)和一些外键(错误?)。无论如何,我希望这对其他人有帮助。
您可以安装适用于 Linux的Windows 子系统,安装 Linux 发行版,然后使用apt或其他包管理器安装 pgloader -
$ sudo apt install pgloader
$ pgloader --version
pgloader version "3.4.1"
compiled with SBCL 1.3.3.debian
$ cd /mnt/c/Users/bburns/Desktop
$ pgloader ....