miniflux-legacy/app/core/database.php

50 lines
1.3 KiB
PHP
Raw Normal View History

2016-12-26 21:07:18 +01:00
<?php
namespace Miniflux\Database;
use Miniflux\Schema;
use RuntimeException;
use PicoDb;
function get_connection()
{
$db = new PicoDb\Database(get_connection_parameters());
$db->getStatementHandler()->withLogging();
2016-12-28 03:12:19 +01:00
if (DEBUG_MODE) {
$db->getStatementHandler()->withStopWatch();
}
2016-12-26 21:07:18 +01:00
if ($db->schema('\Miniflux\Schema')->check(Schema\VERSION)) {
return $db;
} else {
$errors = $db->getLogMessages();
$nb_errors = count($errors);
$last_error = isset($errors[$nb_errors - 1]) ? $errors[$nb_errors - 1] : 'Unknown SQL error';
throw new RuntimeException('Unable to migrate the database schema: '.$last_error);
}
}
function get_connection_parameters()
{
if (DB_DRIVER === 'postgres') {
require_once __DIR__.'/../schemas/postgres.php';
$params = array(
'driver' => 'postgres',
'hostname' => DB_HOSTNAME,
'username' => DB_USERNAME,
'password' => DB_PASSWORD,
'database' => DB_NAME,
'port' => DB_PORT,
);
} else {
require_once __DIR__.'/../schemas/sqlite.php';
$params = array(
'driver' => 'sqlite',
'filename' => DB_FILENAME,
);
}
return $params;
}