Revision control

Copy as Markdown

-- This Source Code Form is subject to the terms of the Mozilla Public
-- License, v. 2.0. If a copy of the MPL was not distributed with this
-- file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- Initialize the v1 schema
CREATE TABLE IF NOT EXISTS addresses_data (
guid TEXT NOT NULL PRIMARY KEY CHECK(length(guid) != 0),
given_name TEXT NOT NULL,
additional_name TEXT NOT NULL,
family_name TEXT NOT NULL,
organization TEXT NOT NULL, -- Company
street_address TEXT NOT NULL, -- (Multiline)
address_level3 TEXT NOT NULL, -- Suburb/Sublocality
address_level2 TEXT NOT NULL, -- City/Town
address_level1 TEXT NOT NULL, -- Province (Standardized code if possible)
postal_code TEXT NOT NULL,
country TEXT NOT NULL, -- ISO 3166
tel TEXT NOT NULL, -- Stored in E.164 format
email TEXT NOT NULL,
time_created INTEGER NOT NULL,
time_last_used INTEGER NOT NULL,
time_last_modified INTEGER NOT NULL,
times_used INTEGER NOT NULL,
sync_change_counter INTEGER NOT NULL
);
-- What's on the server as the JSON payload.
CREATE TABLE IF NOT EXISTS addresses_mirror (
guid TEXT NOT NULL PRIMARY KEY CHECK(length(guid) != 0),
payload TEXT NOT NULL CHECK(length(payload) != 0)
-- We could also have `modified`, which is in the server response and
-- passed around in the sync code, but we don't have a use-case for using it.
);
-- Tombstones are items deleted locally but not deleted in the mirror (ie, ones
-- we are yet to upload)
CREATE TABLE IF NOT EXISTS addresses_tombstones (
guid TEXT PRIMARY KEY CHECK(length(guid) != 0),
time_deleted INTEGER NOT NULL
) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS credit_cards_data (
guid TEXT NOT NULL PRIMARY KEY CHECK(length(guid) != 0),
cc_name TEXT NOT NULL,
cc_number_enc TEXT NOT NULL CHECK(length(cc_number_enc) > 20 OR cc_number_enc == ''),
cc_number_last_4 TEXT NOT NULL CHECK(length(cc_number_last_4) <= 4),
cc_exp_month INTEGER,
cc_exp_year INTEGER,
cc_type TEXT NOT NULL,
time_created INTEGER NOT NULL,
time_last_used INTEGER,
time_last_modified INTEGER NOT NULL,
times_used INTEGER NOT NULL,
sync_change_counter INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS credit_cards_mirror (
guid TEXT NOT NULL PRIMARY KEY CHECK(length(guid) != 0),
payload TEXT NOT NULL CHECK(length(payload) != 0)
);
CREATE TABLE IF NOT EXISTS credit_cards_tombstones (
guid TEXT PRIMARY KEY CHECK(length(guid) != 0),
time_deleted INTEGER NOT NULL
) WITHOUT ROWID;
-- This table holds key-value metadata for the Autofill component and its consumers.
CREATE TABLE IF NOT EXISTS moz_meta (
key TEXT PRIMARY KEY,
value NOT NULL
) WITHOUT ROWID;
-- Populate it with some data, we test that this makes it through all the migrations.
INSERT INTO credit_cards_data (
guid, cc_name, cc_number_enc, cc_number_last_4, cc_exp_month, cc_exp_year,
cc_type, time_created, time_last_used, time_last_modified, times_used,
sync_change_counter
) VALUES (
"A", "Jane Doe", "012345678901234567890", "1234", 1, 2020, "visa", 0, 1, 2,
3, 0
);
INSERT INTO addresses_data (
guid, given_name, additional_name, family_name, organization,
street_address, address_level3, address_level2, address_level1,
postal_code, country, tel, email, time_created, time_last_used,
time_last_modified, times_used, sync_change_counter
) VALUES (
"A", "Jane", "John", "Doe", "Mozilla", "123 Maple lane", "Shelbyville",
"Springfield", "MA", "12345", "US", "01-234-567-8000", "jane@hotmail.com", 0,
1, 2, 3, 0
);
INSERT INTO addresses_data (
guid, given_name, additional_name, family_name, organization,
street_address, address_level3, address_level2, address_level1,
postal_code, country, tel, email, time_created, time_last_used,
time_last_modified, times_used, sync_change_counter
) VALUES (
"B", "", "", "", "Mozilla", "123 Maple lane", "Shelbyville",
"Springfield", "MA", "12345", "US", "01-234-567-8000", "jane@hotmail.com", 0,
1, 2, 3, 0
);
PRAGMA user_version=2;