欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > 【postgres】sqlite格式如何导入postgres数据库

【postgres】sqlite格式如何导入postgres数据库

2025/1/19 4:33:51 来源:https://blog.csdn.net/zkq_1986/article/details/145185815  浏览:    关键词:【postgres】sqlite格式如何导入postgres数据库

step1 在ubuntu系统安装pgloader(centos系统难以直接通过yum安装,如果源码安装的话,会比较费劲)

step2,执行如下python脚本

from pathlib import Path
import subprocess

dataset_dir = Path('/app/sqlite_to_pg/chase-page/data/database/')

# 遍历目录获取所有文件路径
file_paths = [str(p.absolute()) for p in dataset_dir.rglob('*') if p.is_file()]

for fn in file_paths:
    # 创建或更新 a.load 文件内容
    load_file_content = f"""
LOAD DATABASE
    FROM sqlite://{fn}
    INTO pgsql://postgres@192.168.1.14:5432/tablegpt_test_chase


WITH include drop,  -- 在导入前删除已存在的表
     create tables, -- 自动创建目标表
     create indexes, -- 创建索引
     reset sequences  -- 重置序列

CAST
    type number to text,
    type time to text,
    type string to text;
    """

    # 写入 a.load 文件
    with open('a.load', 'w') as file:
        file.write(load_file_content)

    # 执行 pgloader 命令
    command = ['pgloader', 'a.load']

    try:
        result = subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
        print("Command executed successfully")
        print("Output:", result.stdout)
    except subprocess.CalledProcessError as e:
        print("An error occurred while executing the command:")
        print("Exit status:", e.returncode)
        print("Error output:", e.stderr)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com