A linha de comando SQLite fornece vários métodos para exportar ou fazer backup de um banco de dados inteiro. Um deles envolve o
.dump
comando ponto. O
.dump
O comando permite converter um banco de dados inteiro em um único arquivo de texto ASCII. Em outras palavras, ele renderiza todo o banco de dados como SQL. O arquivo de texto contém todas as instruções SQL necessárias para criar as tabelas, inserir dados, etc. Você também pode usar
.dump
para criar um arquivo compactado. Eu descrevo esses dois métodos abaixo. Exportar como SQL
Você pode usar
.dump
em conjunto com .output
ou .once
para exportar todo o banco de dados para um arquivo .sql. Este arquivo conterá todas as instruções SQL necessárias para reconstruir o banco de dados (incluindo a criação de todas as tabelas, a inserção de todos os dados, etc).
Aqui está um exemplo:
.once Store.sql
.dump
Neste caso eu usei o
.once
comando. Isso simplesmente direciona os resultados do próximo comando ou instrução SQL para o arquivo especificado. Neste caso, o próximo comando é o
.dump
comando dot, que por padrão, renderiza todo o conteúdo do banco de dados como SQL. Você também pode usar
.output
, mas isso direcionará os resultados de todos comandos futuros/instruções SQL no arquivo. Isso pode ter consequências não intencionais se você não for cuidadoso. Restaurar o banco de dados
Depois de criar o arquivo de backup .sql, você pode reconstruir todo o banco de dados simplesmente lendo esse arquivo no SQLite.
Por exemplo, você pode se conectar ao SQLite enquanto especifica um novo arquivo de banco de dados (um que ainda não existe):
sqlite3 Store2.db
Ao especificar um arquivo de banco de dados que não existe, o SQLite criará um banco de dados em branco.
Agora que você está no SQLite, você pode ler o conteúdo do arquivo de backup:
.read Store.sql
Isso é tudo o que há para isso. O banco de dados foi reconstruído a partir do arquivo .sql. Todas as tabelas foram criadas e todos os dados foram inseridos.
Criar um arquivo compactado
Se seu banco de dados for grande e contiver muitos dados, talvez seja melhor criar um arquivo de backup compactado.
Aqui está um exemplo:
sqlite3 Store .dump | gzip -c >Store.dump.gz
Observe que isso é executado fora do SQLite. Em outras palavras, não me conectei ao SQLite antes de executar este comando. Eu simplesmente abri uma nova janela de terminal e executei esse comando.
Na verdade, naveguei primeiro para a pasta de backup. Se você não fizer isso, precisará incluir o caminho no arquivo de backup.
Você pode reconstruir o banco de dados com zcat . O zcat utilitário permite que você visualize o conteúdo de um arquivo compactado sem realmente descompactá-lo.
Portanto, o arquivo criado no exemplo anterior pode ser reconstruído usando o zcat Utilitário.
zcat Store.dump.gz | sqlite3 Store2
Isso pode ou não funcionar dependendo do seu sistema. Se isso não funcionar, pode ser necessário usar um utilitário de compactação diferente.