
org.killbill.billing.invoice.ddl.sql Maven / Gradle / Ivy
/*! SET storage_engine=INNODB */;
DROP TABLE IF EXISTS invoice_items;
CREATE TABLE invoice_items (
record_id serial unique,
id varchar(36) NOT NULL,
type varchar(24) NOT NULL,
invoice_id varchar(36) NOT NULL,
account_id varchar(36) NOT NULL,
bundle_id varchar(36),
subscription_id varchar(36),
description varchar(255),
plan_name varchar(50),
phase_name varchar(50),
usage_name varchar(50),
start_date date NOT NULL,
end_date date,
amount numeric(15,9) NOT NULL,
rate numeric(15,9) NULL,
currency varchar(3) NOT NULL,
linked_item_id varchar(36),
created_by varchar(50) NOT NULL,
created_date datetime NOT NULL,
account_record_id bigint /*! unsigned */ not null,
tenant_record_id bigint /*! unsigned */ not null default 0,
PRIMARY KEY(record_id)
) /*! CHARACTER SET utf8 COLLATE utf8_bin */;
CREATE UNIQUE INDEX invoice_items_id ON invoice_items(id);
CREATE INDEX invoice_items_subscription_id ON invoice_items(subscription_id ASC);
CREATE INDEX invoice_items_invoice_id ON invoice_items(invoice_id ASC);
CREATE INDEX invoice_items_account_id ON invoice_items(account_id ASC);
CREATE INDEX invoice_items_linked_item_id ON invoice_items(linked_item_id ASC);
CREATE INDEX invoice_items_tenant_account_record_id ON invoice_items(tenant_record_id, account_record_id);
DROP TABLE IF EXISTS invoices;
CREATE TABLE invoices (
record_id serial unique,
id varchar(36) NOT NULL,
account_id varchar(36) NOT NULL,
invoice_date date NOT NULL,
target_date date NOT NULL,
currency varchar(3) NOT NULL,
migrated bool NOT NULL,
created_by varchar(50) NOT NULL,
created_date datetime NOT NULL,
account_record_id bigint /*! unsigned */ not null,
tenant_record_id bigint /*! unsigned */ not null default 0,
PRIMARY KEY(record_id)
) /*! CHARACTER SET utf8 COLLATE utf8_bin */;
CREATE UNIQUE INDEX invoices_id ON invoices(id);
CREATE INDEX invoices_account_target ON invoices(account_id ASC, target_date);
CREATE INDEX invoices_tenant_account_record_id ON invoices(tenant_record_id, account_record_id);
DROP TABLE IF EXISTS invoice_payments;
CREATE TABLE invoice_payments (
record_id serial unique,
id varchar(36) NOT NULL,
type varchar(24) NOT NULL,
invoice_id varchar(36) NOT NULL,
payment_id varchar(36),
payment_date datetime NOT NULL,
amount numeric(15,9) NOT NULL,
currency varchar(3) NOT NULL,
processed_currency varchar(3) NOT NULL,
payment_cookie_id varchar(255) DEFAULT NULL,
linked_invoice_payment_id varchar(36) DEFAULT NULL,
success bool DEFAULT true,
created_by varchar(50) NOT NULL,
created_date datetime NOT NULL,
account_record_id bigint /*! unsigned */ not null,
tenant_record_id bigint /*! unsigned */ not null default 0,
PRIMARY KEY(record_id)
) /*! CHARACTER SET utf8 COLLATE utf8_bin */;
CREATE UNIQUE INDEX invoice_payments_id ON invoice_payments(id);
CREATE INDEX invoice_payments_invoice_id ON invoice_payments(invoice_id);
CREATE INDEX invoice_payments_reversals ON invoice_payments(linked_invoice_payment_id);
CREATE INDEX invoice_payments_tenant_account_record_id ON invoice_payments(tenant_record_id, account_record_id);
© 2015 - 2025 Weber Informatics LLC | Privacy Policy