Hi Maurizio,
the best place is probably

https://github.com/darktable-org/darktable/blob/master/src/common/database.c

Although, if you want to see what it looks like in practice, try
something like this:


~/.config/darktable$ echo .schema | sqlite3 library.db

CREATE TABLE db_info (key VARCHAR PRIMARY KEY, value VARCHAR);
CREATE TABLE film_rolls (id INTEGER PRIMARY KEY, datetime_accessed
CHAR(20), folder VARCHAR(1024) NOT NULL);
CREATE TABLE images (id INTEGER PRIMARY KEY AUTOINCREMENT, group_id
INTEGER, film_id INTEGER, width INTEGER, height INTEGER, filename
VARCHAR, maker VARCHAR, model VARCHAR, lens VARCHAR, exposure REAL,
aperture REAL, iso REAL, focal_length REAL, focus_distance REAL,
datetime_taken CHAR(20), flags INTEGER, output_width INTEGER,
output_height INTEGER, crop REAL, raw_parameters INTEGER,
raw_denoise_threshold REAL, raw_auto_bright_threshold REAL, raw_black
INTEGER, raw_maximum INTEGER, caption VARCHAR, description VARCHAR,
license VARCHAR, sha1sum CHAR(40), orientation INTEGER, histogram
BLOB, lightmap BLOB, longitude REAL, latitude REAL, color_matrix BLOB,
colorspace INTEGER, version INTEGER, max_version INTEGER,
write_timestamp INTEGER, history_end INTEGER, altitude REAL, position
INTEGER, aspect_ratio REAL);
CREATE TABLE sqlite_sequence(name,seq);
CREATE TABLE selected_images (imgid INTEGER PRIMARY KEY);
CREATE TABLE history (imgid INTEGER, num INTEGER, module INTEGER,
operation VARCHAR(256), op_params BLOB, enabled INTEGER,
blendop_params BLOB, blendop_version INTEGER, multi_priority INTEGER,
multi_name VARCHAR(256));
CREATE TABLE mask (imgid INTEGER, formid INTEGER, form INTEGER, name
VARCHAR(256), version INTEGER, points BLOB, points_count INTEGER,
source BLOB);
CREATE TABLE tagged_images (imgid INTEGER, tagid INTEGER, PRIMARY KEY
(imgid, tagid));
CREATE TABLE color_labels (imgid INTEGER, color INTEGER);
CREATE TABLE meta_data (id INTEGER, key INTEGER, value VARCHAR);
CREATE INDEX film_rolls_folder_index ON film_rolls (folder);
CREATE INDEX images_group_id_index ON images (group_id);
CREATE INDEX images_film_id_index ON images (film_id);
CREATE INDEX images_filename_index ON images (filename);
CREATE INDEX history_imgid_index ON history (imgid);
CREATE INDEX tagged_images_tagid_index ON tagged_images (tagid);
CREATE UNIQUE INDEX color_labels_idx ON color_labels (imgid, color);
CREATE INDEX metadata_index ON meta_data (id, key);
CREATE TABLE used_tags (id INTEGER, name VARCHAR NOT NULL);
CREATE UNIQUE INDEX used_tags_idx ON used_tags (id, name);
CREATE INDEX image_position_index ON images (position);
CREATE TABLE legacy_presets (name varchar, description varchar,
operation varchar, op_version integer, op_params blob, enabled
integer, blendop_params blob, blendop_version integer, multi_priority
integer, multi_name varchar, model varchar, maker varchar, lens
varchar, iso_min real, iso_max real, exposure_min real, exposure_max
real, aperture_min real, aperture_max real, focal_length_min real,
focal_length_max real, writeprotect integer, autoapply integer, filter
integer, def integer, format integer);


hth,
James

On Tue, 16 Jul 2019 at 19:19, Maurizio Paglia <mpagl...@gmail.com> wrote:
>
> Hi,
> can I find information about the database structure (name and type of fields, 
> etc.)?
>
> Thanks,
> Maurizio
>
> ___________________________________________________________________________ 
> darktable developer mailing list to unsubscribe send a mail to 
> darktable-dev+unsubscr...@lists.darktable.org



-- 
Systems programmer / Software engineer / C / Python / cyclist
https://www.jmcpdotcom.com/blog           https://github.com/jmcp
Find me on LinkedIn @ https://www.linkedin.com/in/jamescmcpherson
___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org

Reply via email to