table in Python 是否有一种简单的方法可以将数据库数据从 SQLite 迁移到 Postgres table?
Is there an easy way to migrate database data from SQLite to Postgres table by table in Python?
在 Python 中是否有通过 table 从 SQLite 迁移到 Postgres table 的简单方法?我正在使用 Peewee,可以生成 SQLite 转储但没有可用于导入到 Postgres 的 psql。 Python 中是否有相应的软件包?我也在使用 Peewee 作为 ORM 并且涵盖了生成模式位,问题是数据。
数据库有点大,有 1.3gb
你有很多选择。最简单的可能是使用 Sqlite 的“.dump”shell 命令来生成 SQL。有多种选择或方法可以做到这一点。您可以使用转储所有模式和数据的“.dump”,然后对转储文件进行任何修改,然后将其加载到 postgres 中。
要仅 将 table“my_table”的行数据转储为 CSV,您可以使用:
sqlite> .headers on
sqlite> .mode csv
sqlite> .output model_data.csv
sqlite> SELECT * FROM my_table;
然后您可以使用 Postgres 批量加载 CSV:
COPY table_name(col1, ...)
FROM 'model_data.csv'
DELIMITER ','
CSV HEADER;
Peewee 可以转储多种格式的数据,所以这是一种选择:
models = [User, Tweet]
for model in models:
outfile = '%s.csv' % model._meta.table_name
with open(outfile, 'w', newline='') as f:
writer = csv.writer(f)
row_iter = model.select().tuples().iterator()
writer.writerows(row_iter)
另一种选择是使用 Postgres 外部数据包装器。然后连接到 psql db,使用 fdw 附加 sqlite 数据库,并使用 psql shell.
从一个直接复制到另一个
在 Python 中是否有通过 table 从 SQLite 迁移到 Postgres table 的简单方法?我正在使用 Peewee,可以生成 SQLite 转储但没有可用于导入到 Postgres 的 psql。 Python 中是否有相应的软件包?我也在使用 Peewee 作为 ORM 并且涵盖了生成模式位,问题是数据。
数据库有点大,有 1.3gb
你有很多选择。最简单的可能是使用 Sqlite 的“.dump”shell 命令来生成 SQL。有多种选择或方法可以做到这一点。您可以使用转储所有模式和数据的“.dump”,然后对转储文件进行任何修改,然后将其加载到 postgres 中。
要仅 将 table“my_table”的行数据转储为 CSV,您可以使用:
sqlite> .headers on
sqlite> .mode csv
sqlite> .output model_data.csv
sqlite> SELECT * FROM my_table;
然后您可以使用 Postgres 批量加载 CSV:
COPY table_name(col1, ...)
FROM 'model_data.csv'
DELIMITER ','
CSV HEADER;
Peewee 可以转储多种格式的数据,所以这是一种选择:
models = [User, Tweet]
for model in models:
outfile = '%s.csv' % model._meta.table_name
with open(outfile, 'w', newline='') as f:
writer = csv.writer(f)
row_iter = model.select().tuples().iterator()
writer.writerows(row_iter)
另一种选择是使用 Postgres 外部数据包装器。然后连接到 psql db,使用 fdw 附加 sqlite 数据库,并使用 psql shell.
从一个直接复制到另一个