SQLite.pm 575 B

123456789101112131415161718192021222324
  1. package Trog::SQLite;
  2. use strict;
  3. use warnings;
  4. use DBI;
  5. use DBD::SQLite;
  6. use File::Slurper qw{read_text};
  7. my $dbh = {};
  8. # Ensure the db schema is OK, and give us a handle
  9. sub dbh {
  10. my ($schema,$dbname) = @_;
  11. return $dbh->{$schema} if $dbh->{$schema};
  12. my $qq = read_text($schema);
  13. my $db = DBI->connect("dbi:SQLite:dbname=$dbname","","");
  14. $db->{sqlite_allow_multiple_statements} = 1;
  15. $db->do($qq) or die "Could not ensure auth database consistency";
  16. $db->{sqlite_allow_multiple_statements} = 0;
  17. $dbh->{$schema} = $db;
  18. return $db;
  19. }
  20. 1;