feat(persistance): add migration
This commit is contained in:
56
src/migrations/20260117.ts
Normal file
56
src/migrations/20260117.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
const chainSql =
|
||||
'CREATE TABLE IF NOT EXISTS chain ( ' +
|
||||
'id INTEGER PRIMARY KEY AUTOINCREMENT, ' +
|
||||
'image TEXT, ' +
|
||||
'name TEXT ' +
|
||||
');';
|
||||
|
||||
const establishmentSql =
|
||||
'CREATE TABLE IF NOT EXISTS establishment ( ' +
|
||||
'id INTEGER PRIMARY KEY AUTOINCREMENT ,' +
|
||||
'address TEXT NOT NULL, ' +
|
||||
'chain_id INTEGER NOT NULL, ' +
|
||||
'FOREIGN KEY (chain_id) REFERENCES chain(id) ON DELETE CASCADE ' +
|
||||
');';
|
||||
|
||||
const establishmentChainIdxSql =
|
||||
'CREATE INDEX IF NOT EXISTS idx_establishment_chain_id ON establishment(chain_id);';
|
||||
|
||||
const productSql =
|
||||
'CREATE TABLE IF NOT EXISTS product ( ' +
|
||||
'id INTEGER PRIMARY KEY AUTOINCREMENT, ' +
|
||||
'barcode TEXT NOT NULL UNIQUE, ' +
|
||||
'name TEXT NOT NULL DEFAULT "", ' +
|
||||
'image TEXT ' +
|
||||
');';
|
||||
|
||||
const productEstablishmentSql =
|
||||
'CREATE TABLE IF NOT EXISTS product_establishment ( ' +
|
||||
'id INTEGER PRIMARY KEY AUTOINCREMENT, ' +
|
||||
'product_id INTEGER NOT NULL, ' +
|
||||
'establishment_id INTEGER NOT NULL, ' +
|
||||
'FOREIGN KEY (product_id) REFERENCES product(id) ON DELETE CASCADE, ' +
|
||||
'FOREIGN KEY (establishment_id) REFERENCES establishment(id) ON DELETE CASCADE, ' +
|
||||
'UNIQUE(product_id, establishment_id) ' +
|
||||
');';
|
||||
|
||||
const purchaseSql =
|
||||
'CREATE TABLE IF NOT EXISTS purchase ( ' +
|
||||
'id INTEGER PRIMARY KEY AUTOINCREMENT, ' +
|
||||
'establishment_id INTEGER NOT NULL, ' +
|
||||
'product_id INTEGER NOT NULL, ' +
|
||||
'price INTEGER NOT NULL DEFAULT 0, ' +
|
||||
'quantity INTEGER NOT NULL DEFAULT 1, ' +
|
||||
'date INTEGER NOT NULL, ' +
|
||||
'FOREIGN KEY (establishment_id) REFERENCES establishment(id) ON DELETE CASCADE, ' +
|
||||
'FOREIGN KEY (product_id) REFERENCES product(id) ON DELETE CASCADE ' +
|
||||
');';
|
||||
|
||||
export const tables: [string, any[]][] = [
|
||||
[chainSql, []],
|
||||
[establishmentSql, []],
|
||||
[establishmentChainIdxSql, []],
|
||||
[productSql, []],
|
||||
[productEstablishmentSql, []],
|
||||
[purchaseSql, []],
|
||||
];
|
||||
Reference in New Issue
Block a user