SQL
From GnuCash
This page is for information about a SQL backend for GnuCash.
Here is the data model created by SQLite3:
CREATE TABLE versions (
table_name text(50),
table_version integer
);
CREATE TABLE transactions (
guid CHAR(32) PRIMARY KEY NOT NULL,
currency_guid CHAR(32) NOT NULL,
num text(2048) NOT NULL,
post_date CHAR(14) NOT NULL,
enter_date CHAR(14) NOT NULL,
description text(2048)
);
CREATE TABLE splits (
guid CHAR(32) PRIMARY KEY NOT NULL,
tx_guid CHAR(32) NOT NULL,
account_guid CHAR(32) NOT NULL,
memo text(2048) NOT NULL,
action text(2048) NOT NULL,
reconcile_state text(1) NOT NULL,
reconcile_date CHAR(14) NOT NULL,
value_num integer NOT NULL,
value_denom integer NOT NULL,
quantity_num integer NOT NULL,
quantity_denom integer NOT NULL,
lot_guid CHAR(32)
);
CREATE TABLE lots (
guid CHAR(32) PRIMARY KEY NOT NULL,
account_guid CHAR(32),
is_closed integer NOT NULL
);
CREATE TABLE budgets (
guid CHAR(32) PRIMARY KEY NOT NULL,
name text(2048) NOT NULL,
description text(2048),
num_periods integer NOT NULL
);
CREATE TABLE recurrences (
obj_guid CHAR(32) NOT NULL,
recurrence_mult integer NOT NULL,
recurrence_period_type text(2048) NOT NULL,
recurrence_period_start CHAR(8) NOT NULL
);
CREATE TABLE commodities (
guid CHAR(32) PRIMARY KEY NOT NULL,
namespace text(2048) NOT NULL,
mnemonic text(2048) NOT NULL,
fullname text(2048),
cusip text(2048),
fraction integer NOT NULL,
quote_flag integer NOT NULL,
quote_source text(2048),
quote_tz text(2048)
);
CREATE TABLE accounts (
guid CHAR(32) PRIMARY KEY NOT NULL,
name text(2048) NOT NULL,
account_type text(2048) NOT NULL,
commodity_guid CHAR(32) NOT NULL,
commodity_scu integer NOT NULL,
non_std_scu integer NOT NULL,
parent_guid CHAR(32),
code text(2048),
description text(2048)
);
CREATE TABLE slots (
obj_guid CHAR(32) NOT NULL,
name text(4096) NOT NULL,
slot_type integer NOT NULL,
int64_val integer,
string_val text(4096),
double_val real,
timespec_val CHAR(14),
guid_val CHAR(32),
numeric_val_num integer,
numeric_val_denom integer
);
CREATE TABLE schedxactions (
guid CHAR(32) PRIMARY KEY NOT NULL,
name text(2048),
enabled integer NOT NULL,
start_date CHAR(8) NOT NULL,
last_occur CHAR(8),
num_occur integer NOT NULL,
rem_occur integer NOT NULL,
auto_create integer NOT NULL,
auto_notify integer NOT NULL,
adv_creation integer NOT NULL,
adv_notify integer NOT NULL,
instance_count integer NOT NULL,
template_act_guid CHAR(32) NOT NULL
);
CREATE TABLE prices (
guid CHAR(32) PRIMARY KEY NOT NULL,
commodity_guid CHAR(32) NOT NULL,
currency_guid CHAR(32) NOT NULL,
date CHAR(14) NOT NULL,
source text(2048),
type text(2048),
value_num integer NOT NULL,
value_denom integer NOT NULL
);
CREATE TABLE books (
guid CHAR(32) PRIMARY KEY NOT NULL,
root_account_guid CHAR(32) NOT NULL,
root_template_guid CHAR(32) NOT NULL
);