forked from Public/pics
Add SQLite support as alternative database backend
Support config-driven choice between MySQL and SQLite via DB_DRIVER constant, defaulting to MySQL for backward compatibility. All SQL adaptation lives in Database.php (UDFs + query rewriting), so model files need no changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> SQLite: remove FK constraints, revert 0→null sentinel changes The SQLite schema had FOREIGN KEY constraints that don't exist in the MySQL schema. These forced a cascade of 0→null changes to satisfy FK enforcement. Removing them keeps the two backends behaviorally consistent and minimises the diff. Real SQLite compat fixes (UDFs, query rewriting, rowCount→count, Router fixes, EditAlbum guard) are preserved. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -294,6 +294,8 @@ class Tag
|
||||
|
||||
public function save()
|
||||
{
|
||||
$vars = get_object_vars($this);
|
||||
|
||||
return Registry::get('db')->query('
|
||||
UPDATE tags
|
||||
SET
|
||||
@@ -306,7 +308,7 @@ class Tag
|
||||
description = :description,
|
||||
count = :count
|
||||
WHERE id_tag = :id_tag',
|
||||
get_object_vars($this));
|
||||
$vars);
|
||||
}
|
||||
|
||||
public function delete()
|
||||
@@ -461,10 +463,12 @@ class Tag
|
||||
$albums_by_parent = [];
|
||||
while ($row = $db->fetchAssoc($res))
|
||||
{
|
||||
if (!isset($albums_by_parent[$row['id_parent']]))
|
||||
$albums_by_parent[$row['id_parent']] = [];
|
||||
$parent = $row['id_parent'];
|
||||
|
||||
$albums_by_parent[$row['id_parent']][] = $row + ['children' => []];
|
||||
if (!isset($albums_by_parent[$parent]))
|
||||
$albums_by_parent[$parent] = [];
|
||||
|
||||
$albums_by_parent[$parent][] = $row + ['children' => []];
|
||||
}
|
||||
|
||||
$albums = self::getChildrenRecursively(0, 0, $albums_by_parent);
|
||||
|
||||
Reference in New Issue
Block a user