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

相关推荐
刘恒1234567893 分钟前
Windows 电脑文件夹手动分类指南
java·windows·python·电脑·php
爱学习的小可爱卢4 分钟前
JavaSE基础-Java异常处理全解析:从ClassNotFound到IndexOutOfBounds
java·javase
Smoothcloud润云10 分钟前
Google DeepMind 学习系列笔记(3):Design And Train Neural Networks
数据库·人工智能·笔记·深度学习·学习·数据分析·googlecloud
小王不爱笑13210 分钟前
LangChain4j 项目实战--1:硅谷小智(医疗智能客服)笔记
java
XiaoLeisj11 分钟前
Android Activity 页面导航基础:Manifest 声明、Intent 显式/隐式跳转与数据传递
android·java
银发控、11 分钟前
MySQL覆盖索引与索引下推
数据库·mysql·面试
忍者必须死14 分钟前
JDK1.7的HashMap的环形链表
java·数据结构·算法·链表
鹿角片ljp17 分钟前
短信登录:基于 Session 实现(黑马点评实战)
java·服务器·spring boot·mybatis
北风toto18 分钟前
JDK8(JAVA)供应商说明
java·开发语言
清水白石00819 分钟前
观察者模式全解析:用 Python 构建优雅的事件系统,让组件彻底解耦
java·python·观察者模式