【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)

相关推荐
Sylvia33.14 小时前
板球实时数据接入实战:从Frames模型到多赛制适配
java·python·websocket·网络协议·架构
志栋智能14 小时前
超自动化安全的变更与配置安全管理
数据库·安全·自动化
toooooop814 小时前
thinkphp查询数据表最后的自增id
前端·javascript·数据库
Zzzzmo_14 小时前
SpringBoot 日志
java·spring boot·spring
风哥2号14 小时前
数据库教程FGMT19‑Oracle多租户容器架构与新特性总结
数据库·oracle·架构
hai_android14 小时前
Android JNI 示例详解:Java 与 C++ 互调演示
android·java
geovindu14 小时前
java: Strategy Pattern
java·开发语言·后端·设计模式·策略模式·行为模式
garmin Chen14 小时前
MySQL精简面试题
数据库·后端·mysql·面试
anxiao_m14 小时前
局域网文件传输工具有哪些?4款主流工具实测对比测评
大数据·网络·数据库
yimindev14 小时前
从 BI 到 Agent:我如何用 Java 打造一个轻量级数据库语义网关 DatI
java