вторник, 11 августа 2020 г.

Объедить несколько sqlite баз данных в одну (Merge sqlite databases)

 Для быстрого объединения нескольких баз данных sqlite с одинаковой схемой построения я использую две команды на bash.

 Для всех файлов (переменная f) в текущем каталоге (./) выполним команду экспорта в дамп .sql, где имя каждого дампа будет соответствовать имени каждому файлу .db:

for f in ./*.db; do sqlite3 $f .dump > $f.sql; done

  Теперь импортируем все файлы .sql в одну базу all.db:

for f in ./*.sql; do cat $f | sqlite3 all.db; done

 

Те же действия но на python3:

import sqlite3
import glob


for kismetdb in (glob.glob('/home/fruity/WiFi/kismet_spb/Normal/merge/*.kismet')):
con = sqlite3.connect(kismetdb)
with open('/home/fruity/WiFi/kismet_spb/Normal/merge/dump.sql', 'a') as f:
for line in con.iterdump():
f.write('%s\n' % line)


Комментариев нет:

Отправить комментарий