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

相关推荐
卓怡学长14 小时前
w192基于springboot教务管理系统
java·数据库·spring boot·spring·maven·intellij-idea
逸Y 仙X14 小时前
Spark SQL
java·大数据·sql·spark
码农颜14 小时前
6.4.1 监听连接
java·数据库·mysql
mldong14 小时前
会签三兄弟:并行/串行/按比例的实现与取舍
java·架构
桐桐桐14 小时前
Python 实战:批量生成带来源参数的 WhatsApp 短链 + 二维码
服务器·数据库·python·前端框架·ip·跨境电商·独立站
stereohomology14 小时前
AI解读:某IM软件本地数据库密钥提取与解密
数据库·攻防·加密解密·数字平权
Java后端的Ai之路14 小时前
01、Python - 设计模式介绍
java·人工智能·python·设计模式·通用
zzzll111114 小时前
大模型技术原理与应用实践
java·数据库·人工智能
倔强的石头_14 小时前
数据库迁移工具从单机作业走向云端协同
数据库
yours_Gabriel14 小时前
【一】数据库基础:SQL语句、函数、约束、多表查询、事务
数据库·sql·oracle