<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sqlite on Blog GoHugo de Fredô : Linux, Proxmox, IA, Trail, Course, Randonnée, Gravel, Ski de Randonnée</title>
    <link>https://move.cyber-neurones.org/tags/sqlite/</link>
    <description>Recent content in Sqlite on Blog GoHugo de Fredô : Linux, Proxmox, IA, Trail, Course, Randonnée, Gravel, Ski de Randonnée</description>
    <generator>Hugo</generator>
    <language>fr</language>
    <lastBuildDate>Thu, 30 Jan 2020 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://move.cyber-neurones.org/tags/sqlite/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Digikam : sqlite3 lecture des tables afin de supprimer les images similaires</title>
      <link>https://move.cyber-neurones.org/post/2020/01/2020-01-30-digikam-sqlite3-lecture-des-tables-afin-de-supprimer-les-images-similaires/</link>
      <pubDate>Thu, 30 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://move.cyber-neurones.org/post/2020/01/2020-01-30-digikam-sqlite3-lecture-des-tables-afin-de-supprimer-les-images-similaires/</guid>
      <description>&lt;p&gt;J&amp;rsquo;ai fait une petite lecture des tables de Dikikam afin de faire un export des images similaires avec un taux à 1.0 :&lt;/p&gt;&#xA;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sqlite3 &#xA;SQLite version 3.22.0 2018-01-22 18:45:57&#xA;Enter &amp;#34;.help&amp;#34; for usage hints.&#xA;Connected to a transient in-memory database.&#xA;Use &amp;#34;.open FILENAME&amp;#34; to reopen on a persistent database.&#xA;sqlite&amp;gt; .open similarity.db&#xA;sqlite&amp;gt; .tables&#xA;ImageHaarMatrix     ImageSimilarity     SimilaritySettings&#xA;sqlite&amp;gt; .schema ImageSimilarity&#xA;CREATE TABLE ImageSimilarity&#xA;                    (imageid1 INTEGER NOT NULL,&#xA;                    imageid2 INTEGER NOT NULL,&#xA;                    algorithm INTEGER,&#xA;                    value DOUBLE,&#xA;                    CONSTRAINT Similar UNIQUE(imageid1, imageid2, algorithm));&#xA;sqlite&amp;gt; .schema ImageHaarMatrix&#xA;CREATE TABLE ImageHaarMatrix&#xA;                    (imageid INTEGER PRIMARY KEY,&#xA;                    modificationDate DATETIME,&#xA;                    uniqueHash TEXT,&#xA;                    matrix BLOB);&#xA;CREATE TRIGGER delete_similarities DELETE ON ImageHaarMatrix&#xA;                    BEGIN&#xA;                        DELETE FROM ImageSimilarity&#xA;                            WHERE ( ImageSimilarity.imageid1=OLD.imageid OR ImageSimilarity.imageid2=OLD.imageid )&#xA;                              AND ( ImageSimilarity.algorithm=1 );&#xA;                    END;&#xA;sqlite&amp;gt; .schema SimilaritySettings&#xA;CREATE TABLE SimilaritySettings&#xA;                    (keyword TEXT NOT NULL UNIQUE,&#xA;                    value TEXT);&#xA;sqlite&amp;gt; .open digikam4.db&#xA;sqlite&amp;gt; .tables&#xA;AlbumRoots          ImageHistory        ImageRelations      Settings          &#xA;Albums              ImageInformation    ImageTagProperties  TagProperties     &#xA;DownloadHistory     ImageMetadata       ImageTags           Tags              &#xA;ImageComments       ImagePositions      Images              TagsTree          &#xA;ImageCopyright      ImageProperties     Searches            VideoMetadata     &#xA;sqlite&amp;gt; .schema Images&#xA;CREATE TABLE Images&#xA;                    (id INTEGER PRIMARY KEY,&#xA;                    album INTEGER,&#xA;                    name TEXT NOT NULL,&#xA;                    status INTEGER NOT NULL,&#xA;                    category INTEGER NOT NULL,&#xA;                    modificationDate DATETIME,&#xA;                    fileSize INTEGER,&#xA;                    uniqueHash TEXT,&#xA;                    manualOrder INTEGER,&#xA;                    UNIQUE (album, name));&#xA;CREATE INDEX dir_index  ON Images (album);&#xA;CREATE INDEX hash_index ON Images (uniqueHash);&#xA;CREATE INDEX image_name_index ON Images (name);&#xA;CREATE TRIGGER delete_image DELETE ON Images&#xA;                    BEGIN&#xA;                        DELETE FROM ImageTags          WHERE imageid=OLD.id;&#xA;                        DELETE From ImageInformation   WHERE imageid=OLD.id;&#xA;                        DELETE From ImageMetadata      WHERE imageid=OLD.id;&#xA;                        DELETE From VideoMetadata      WHERE imageid=OLD.id;&#xA;                        DELETE From ImagePositions     WHERE imageid=OLD.id;&#xA;                        DELETE From ImageComments      WHERE imageid=OLD.id;&#xA;                        DELETE From ImageCopyright     WHERE imageid=OLD.id;&#xA;                        DELETE From ImageProperties    WHERE imageid=OLD.id;&#xA;                        DELETE From ImageHistory       WHERE imageid=OLD.id;&#xA;                        DELETE FROM ImageRelations     WHERE subject=OLD.id OR object=OLD.id;&#xA;                        DELETE FROM ImageTagProperties WHERE imageid=OLD.id;&#xA;                        UPDATE Albums SET icon=null    WHERE icon=OLD.id;&#xA;                        UPDATE Tags SET icon=null      WHERE icon=OLD.id;&#xA;                    END;&#xA;sqlite&amp;gt;  .schema ImageInformation&#xA;CREATE TABLE ImageInformation&#xA;                    (imageid INTEGER PRIMARY KEY,&#xA;                    rating INTEGER,&#xA;                    creationDate DATETIME,&#xA;                    digitizationDate DATETIME,&#xA;                    orientation INTEGER,&#xA;                    width INTEGER,&#xA;                    height INTEGER,&#xA;                    format TEXT,&#xA;                    colorDepth INTEGER,&#xA;                    colorModel INTEGER);&#xA;CREATE INDEX creationdate_index ON ImageInformation (creationDate);&#xA;sqlite&amp;gt; .schema Albums&#xA;CREATE TABLE Albums&#xA;                    (id INTEGER PRIMARY KEY,&#xA;                    albumRoot INTEGER NOT NULL,&#xA;                    relativePath TEXT NOT NULL,&#xA;                    date DATE,&#xA;                    caption TEXT,&#xA;                    collection TEXT,&#xA;                    icon INTEGER,&#xA;                    UNIQUE(albumRoot, relativePath));&#xA;CREATE TRIGGER delete_album DELETE ON Albums&#xA;                BEGIN&#xA;                    DELETE FROM Images&#xA;                    WHERE Images.album = OLD.id;&#xA;                END;&#xA;sqlite&amp;gt; attach &amp;#39;digikam4.db&amp;#39; as db1;&#xA;sqlite&amp;gt; attach &amp;#39;similarity.db&amp;#39; as db2;&#xA;sqlite&amp;gt; select count(*) from db1.Images as A, db2.ImageSimilarity as B, db1.Albums as C where B.imageid2 = A.id and B.algorithm = 1.0 and A.album = C.id;&#xA;36796&#xA;sqlite&amp;gt; select relativePath || &amp;#39;/&amp;#39; || name from db1.Images as A, db2.ImageSimilarity as B, db1.Albums as C where B.imageid2 = A.id and B.algorithm = 1.0 and A.album = C.id group by relativePath;&#xA;...&#xA;sqlite&amp;gt; .output file_duplicate.txt&#xA;sqlite&amp;gt; select &amp;#39;.&amp;#39; || relativePath || &amp;#39;/&amp;#39; || name from db1.Images as A, db2.ImageSimilarity as B, db1.Albums as C where B.imageid2 = A.id and B.algorithm = 1.0 and A.album = C.id group by relativePath;&#xA;&#xA;sqlite&amp;gt; select count(*) from db1.Images as A, db2.ImageSimilarity as B, db1.Albums as C where B.imageid2 = A.id and A.album = C.id and relativePath = &amp;#39;/2019/11/28&amp;#39;;&#xA;654&#xA;sqlite&amp;gt; select count(*) from db1.Images as A, db2.ImageSimilarity as B, db1.Albums as C where B.imageid1 = A.id and A.album = C.id and relativePath = &amp;#39;/2019/11/28&amp;#39;;&#xA;2545&#xA;sqlite&amp;gt; .output file_duplicate_2.txt&#xA;sqlite&amp;gt; select &amp;#39;.&amp;#39; || relativePath || &amp;#39;/&amp;#39; || name from db1.Images as A, db2.ImageSimilarity as B, db1.Albums as C where B.imageid2 = A.id and B.algorithm &amp;gt; 0.96 and A.album = C.id;&#xA;sqlite&amp;gt; .output file_duplicate_3.txt&#xA;sqlite&amp;gt; select &amp;#39;.&amp;#39; || relativePath || &amp;#39;/&amp;#39; || name from db1.Images as A, db2.ImageSimilarity as B, db1.Albums as C where B.imageid1 = A.id and B.algorithm &amp;gt; 0.96 and A.album = C.id;&#xA;sqlite&amp;gt; .quit&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Ensuite pour la suppression j&amp;rsquo;ai fait :&lt;/p&gt;</description>
    </item>
    <item>
      <title>TAPForm : export de Bento vers TAPForm (images incluses)</title>
      <link>https://move.cyber-neurones.org/post/2015/02/2015-02-03-tapform-export-de-bento-vers-tapform-images-incluses/</link>
      <pubDate>Tue, 03 Feb 2015 00:00:00 +0000</pubDate>
      <guid>https://move.cyber-neurones.org/post/2015/02/2015-02-03-tapform-export-de-bento-vers-tapform-images-incluses/</guid>
      <description>&lt;p&gt;Le lien de TAPForm sur l&amp;rsquo;Apple Store : &lt;a href=&#34;https://itunes.apple.com/fr/app/tap-forms-base-de-donnees/id494995266?mt=12&#34;&gt;https://itunes.apple.com/fr/app/tap-forms-base-de-donnees/id494995266?mt=12&lt;/a&gt;. J&amp;rsquo;estime que c&amp;rsquo;est la meilleure alternative à Bento.&lt;/p&gt;&#xA;&lt;h1 id=&#34;solution--n1--pour-utilisateur-de-bento-avec-une-version--40-&#34;&gt;Solution ( n°1 ) pour utilisateur de Bento avec une version &amp;gt;= 4.0 :&lt;/h1&gt;&#xA;&lt;p&gt;Attention : les utilisateurs de la dernière version de Bento peuvent utiliser cette méthode qui est beaucoup plus simple :&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.manula.com/manuals/tap-zapp/tap-forms-mac/3/en/topic/bento-template-importer&#34;&gt;http://www.manula.com/manuals/tap-zapp/tap-forms-mac/3/en/topic/bento-template-importer&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Pour voir si vous avez la dernière version il faut faire : Bento -&amp;gt; Fichier -&amp;gt; Exporter -&amp;gt; Modèle (et il faut avoir une case à cocher indiquant d&amp;rsquo;inclure les données).&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
