【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://[email protected]: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)

相关推荐
数据库砖家1 分钟前
YashanDB|虚拟内存高出实际内存十几G?原因不只是“占用大”这么简单
数据库
程序员小蘇15 分钟前
一天一个java知识点----Tomcat与Servlet
java·servlet·tomcat
Moso_Rx31 分钟前
JavaEE——线程安全
java·安全·java-ee
郭源潮136 分钟前
《MySQL:MySQL表结构的基本操作》
数据库·mysql
岁岁岁平安1 小时前
SpringMVC入门学习总结(2025.04.16)
java·spring·java-ee·mvc·springmvc
火龙谷1 小时前
【hive】Hive对数据库,对表的操作(一)
数据库·hive·hadoop
日月星辰Ace1 小时前
@JsonProperty 用于构造方法和属性
java
西门吹雪@1321 小时前
redis 配置日志和数据存储位置
数据库·redis·缓存
日月星辰Ace1 小时前
@TestPropertySource 造成 SpringBoot Test 中对同一个 Bean 使用不同实例
java·spring boot