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

相关推荐
魂梦翩跹如雨11 分钟前
P10424 [蓝桥杯 2024 省 B] 好数——Java解答
java·蓝桥杯
理想三旬16 分钟前
数据定义:模式、表、索引
数据库
c***871921 分钟前
讲解进阶之路:模块、包和异常处理-上篇
数据库·redis·哈希算法
编程火箭车22 分钟前
【Java SE 基础学习打卡】20 运算符(下)
java·运算符·编程基础·逻辑运算符·条件判断·三元运算符·关系运算符
m0_5981772326 分钟前
Mysql(2) - DQL-基本查询
java
编程修仙34 分钟前
第七篇 java的注解以及使用反射实现自定义注解功能
xml·java·开发语言·spring
f***147736 分钟前
Tomcat10下载安装教程
java
!chen37 分钟前
Oracle分区表+本地索引 核心优化方案
数据库·oracle
叽里咕噜怪40 分钟前
MySQL-读写分离实验
数据库·mysql