The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Quiq::SQLite - Operationen auf einer SQLite-Datenbank

BASE CLASS

Quiq::Object

METHODS

Klassenmethoden

exportData() - Exportiere SQLite Tabellendaten in Verzeichnis

Synopsis

  $class->exportData($dbFile,$exportDir);

Arguments

$dbFile

SQLite Datenbank-Datei.

$exportDir

Verzeichnis, in das die Tabellendaten exportiert werden.

Description

Exportiere die Tabellendaten der SQLite-Datenbank $dbFile in Verzeichnis $exportDir.

Example

  Quiq::SQLite->export('~/var/myapp/myapp.db','/tmp/myapp');

importData() - Importiere SQLite Datenbank aus Verzeichnis

Synopsis

  $class->importData($dbFile,$importDir);

Arguments

$dbFile

SQLite Datenbank-Datei.

$exportDir

Verzeichnis, aus dem die Tabellendaten importiert werden.

Description

Importiere die Tabellendaten der SQLite-Datenbank $dbFile aus Verzeichnis $importDir.

Example

  Quiq::SQLite->export('~/var/myapp/myapp.db','/tmp/myapp');

recreateDatabase() - Erzeuge SQLite Datenbank neu

Synopsis

  $class->recreateDatabase($dbFile,$exportDir,@opt,$sub);

Arguments

$dbFile

SQLite Datenbank-Datei.

$exportDir

Verzeichnis, in das die Tabellendaten und Datenbank-Datei gesichert werden. Schlägt die Neuerzeugung fehl, müssen die Tabellendaten eventuell bearbeitet und die Neuerzeugung wiederholt werden. Die ursprüngliche Datenbank kann bei Bedarf wieder hergestellt werden, da sie zuvor ebenfalls in das Exportverzeichnis gesichert wurde (s.u.).

$sub

Refenz auf die Subroutine, die das Schema auf einer leeren Datenbank erzeugt. Als einzigen Parameter wird $dbFile an die Subroutine übergeben.

  $class->recreateDatabase('~/var/myapp/myapp.db','/tmp/myapp',sub {
      my $dbFile = shift;
  
      my $db = %<Quiq::Database::Connection->new("dbi#sqlite:$dbFile",
          -utf8 => 1,
      );
  
      # via $db alle Schemaobjekte erzeugen,
      # aber keine Daten importieren!
      ...
  
      return;
  });

Options

-interactive => $bool (Default: 1)

Stelle Rückfragen an den Benutzer.

Description

Erzeuge die Datenbank $dbFile via Subroutine $sub erstmalig oder neu. Dies erfolgt in folgenden Schritten:

  1. Tabellendaten in Exportverzeichnis exportieren

  2. Datenbank $dbFile in Exportverzeichnis kopieren (sichern)

  3. Datenbank $dbFile leeren

  4. Datenbank-Strukturen via $sub erzeugen

  5. die unter 2. exportierten Daten importieren

  6. Exportverzeichnis löschen (falls in den Schritten 4. bis 6. kein Fehler aufgetreten ist)

Die Schritte 1. und 2. finden nur nach Rückfrage statt, wenn das Exportverzeichnis bereits existiert. Das Exportverzeichnis existiert typischerweise nur, wenn ein vorheriger Neuerzeugungsversuch fehlgeschlagen ist.

VERSION

1.204

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2022 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.