mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-03-04 09:48:19 +01:00
Previously, we applied replacements to our schema definitions to make them compatible with both SQLite and Postgres backends, as the files were not fully compatible with either. With this change, the only replacement required for SQLite has been moved to the generator script. This adjustment ensures compatibility by enabling auto-incrementing primary keys that are treated as 64-bit integers by sqlc.
51 lines
2.2 KiB
SQL
51 lines
2.2 KiB
SQL
-- invoice_event_types stores the different types of invoice events.
|
|
CREATE TABLE IF NOT EXISTS invoice_event_types(
|
|
id INTEGER PRIMARY KEY,
|
|
|
|
description TEXT NOT NULL
|
|
);
|
|
|
|
-- invoice_event_types defines the different types of invoice events.
|
|
INSERT INTO invoice_event_types (id, description)
|
|
VALUES
|
|
-- invoice_created is the event type used when an invoice is created.
|
|
(0, 'invoice_created'),
|
|
-- invoice_canceled is the event type used when an invoice is canceled.
|
|
(1, 'invoice_canceled'),
|
|
-- invoice_settled is the event type used when an invoice is settled.
|
|
(2, 'invoice_settled'),
|
|
-- setid_created is the event type used when an AMP sub invoice
|
|
-- corresponding to the set_id is created.
|
|
(3, 'setid_created'),
|
|
-- setid_canceled is the event type used when an AMP sub invoice
|
|
-- corresponding to the set_id is canceled.
|
|
(4, 'setid_canceled'),
|
|
-- setid_settled is the event type used when an AMP sub invoice
|
|
-- corresponding to the set_id is settled.
|
|
(5, 'setid_settled');
|
|
|
|
|
|
-- invoice_events stores all major events related to the node's invoices and
|
|
-- AMP sub invoices. This table can be used to create a historical view of what
|
|
-- happened to the node's invoices.
|
|
CREATE TABLE IF NOT EXISTS invoice_events (
|
|
id INTEGER PRIMARY KEY,
|
|
|
|
-- added_at is the timestamp when this event was added.
|
|
added_at TIMESTAMP NOT NULL,
|
|
|
|
-- event_type is the type of this event.
|
|
event_type INTEGER NOT NULL REFERENCES invoice_event_types(id) ON DELETE CASCADE,
|
|
|
|
-- invoice_id is the reference to the invoice this event was added for.
|
|
invoice_id BIGINT NOT NULL REFERENCES invoices(id) ON DELETE CASCADE,
|
|
|
|
-- set_id is the reference to the AMP sub invoice this event was added for.
|
|
-- May be NULL if the event is not related to an AMP sub invoice.
|
|
set_id BLOB REFERENCES amp_sub_invoices(set_id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS invoice_events_added_at_idx ON invoice_events(added_at);
|
|
CREATE INDEX IF NOT EXISTS invoice_events_event_type_idx ON invoice_events(event_type);
|
|
CREATE INDEX IF NOT EXISTS invoice_events_invoice_id_idx ON invoice_events(invoice_id);
|
|
CREATE INDEX IF NOT EXISTS invoice_events_set_id_idx ON invoice_events(set_id);
|