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

相关推荐
betazhou4 分钟前
oracle goldengate非并行进程转换为并行进程
数据库·oracle·并行·parallel·ogg·同步数据
wuli玉shell6 分钟前
数仓-范式建模、维度建模、雪花模型、星型模型对比及其适用范围
数据库·oracle
ghie90907 分钟前
oracle dblink varchar类型查询报错记录
数据库·oracle
等rain亭8 分钟前
MySQL数据库创建、删除、修改
数据库·mysql
怀君9 分钟前
Flutter——数据库Drift开发详细教程(五)
数据库·flutter
Le_ee10 分钟前
sqli-labs靶场第二关——数字型
数据库·sql·网络安全·sql注入·sqli—labs
编程点滴路14 分钟前
LinkedList源码解析
java·开发语言
小哈里15 分钟前
【Oracle认证】MySQL 8.0 OCP 认证考试英文版(MySQL30 周年版)
数据库·mysql·ocp·oracle认证·证书考试
花花鱼36 分钟前
spring boot lunar 农历的三方库引用,获取日期的农历值
java·前端·spring boot
一切皆有迹可循37 分钟前
Spring Boot 基于 Cookie 实现单点登录:原理、实践与优化详解
java·spring boot·后端