v0.0.1
This commit is contained in:
170
scripts/import.js
Normal file
170
scripts/import.js
Normal file
@@ -0,0 +1,170 @@
|
||||
const sqlite3 = require('sqlite3');
|
||||
const crypto = require('crypto');
|
||||
|
||||
// Данные для записи
|
||||
const data = [
|
||||
{ "name": "Богданова Л.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Ботюк Л.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Ботюк М.", "group": "1", "status": "elder" },
|
||||
{ "name": "Венгер С.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Гловюк С.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Гнатюк П.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Дуньковська Г.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Корінь О.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Медецька Л.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Меладзе А.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Меладзе М.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Нуждіна Н.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Сидорчук І.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Сидорчук О.", "group": "1", "status": "elder" },
|
||||
{ "name": "Смірнов Б.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Смірнова В.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Смірнов Л.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Ткаченко Н.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Медецький Р.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Заболотний В.", "group": "1", "status": "lamb" },
|
||||
{ "name": "Власюк Т.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Демків В.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Іващенко А.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Кіналь Г.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Кіналь М.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Кіналь Т.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Ковчук Д.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Кушнірук Н.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Муц М.", "group": "2", "status": "elder" },
|
||||
{ "name": "Муц Н.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Муц О.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Подвірна О.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Позовиков М.", "group": "2", "status": "elder" },
|
||||
{ "name": "Позовиков О.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Позовикова Е.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Позовикова Л.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Позовикова М.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Резніченко А.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Резніченко В.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Хоптій Л.", "group": "2", "status": "lamb" },
|
||||
{ "name": "Авдєєва В.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Авдєєв П.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Гречило Л.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Гушатей З.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Дворянська Н.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Дворянський М.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Дворянська М.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Дуньковська Ол.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Дуньковський В.", "group": "3", "status": "elder" },
|
||||
{ "name": "Дуньковська Л.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Кавюк Н.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Ковалюк Е.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Ковалюк С.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Липа А.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Липа Н.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Музика С.", "group": "3", "status": "elder" },
|
||||
{ "name": "Музика Св.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Філь Н.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Червенко Л.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Майка М.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Петрович І.", "group": "3", "status": "lamb" },
|
||||
{ "name": "Буняк Н.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Буярська А.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Буярська Н.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Буярський М.", "group": "4", "status": "elder" },
|
||||
{ "name": "Грищук Т.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Карелін І.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Кареліна Ір.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Кареліна С.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Ковальчук Н.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Ковальчук Р.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Ковчук Р.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Резніченко Т.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Сергієнко О.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Сергієнко С.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Стойкевич М.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Чапайло Г.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Шептицька В.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Шептицький І.", "group": "4", "status": "lamb" },
|
||||
{ "name": "Благов Я.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Благова П.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Богів Г.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Богів Т.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Галка А.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Домбрович О.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Кавюк А.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Кавюк В.", "group": "5", "status": "elder" },
|
||||
{ "name": "Кузнєцова Н.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Луців І.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Луців О.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Сиротюк В.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Сиротюк О.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Солонинка С.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Ульянич І.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Ульянич О.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Шмигельська С.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Сидорчук Т.", "group": "5", "status": "lamb" },
|
||||
{ "name": "Білоліпецький І.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Винниченко Г.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Воронцов Д.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Дуньковська О.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Загурська О.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Іваненко К.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Кравчук Н.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Кузюк В.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Кузюк С.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Маняхіна А.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Мельник Н.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Мінтенко М.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Мінтенко Н.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Наворинська Н.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Носевич І.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Носевич Т.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Страшок М.", "group": "6", "status": "elder" },
|
||||
{ "name": "Страшок О.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Мельник О.", "group": "6", "status": "lamb" },
|
||||
{ "name": "Бугайов Д.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Гергель Л.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Гергель О.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Горун А.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Ковчук Л.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Ковчук Н.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Михайлів С.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Музика І.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Музика О.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Наворинський Р.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Парила І.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Резніченко А.", "group": "7", "status": "elder" },
|
||||
{ "name": "Резніченко В.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Семчишин Ф.", "group": "7", "status": "elder" },
|
||||
{ "name": "Сувалко В.", "group": "7", "status": "elder" },
|
||||
{ "name": "Сувалко Н.", "group": "7", "status": "lamb" },
|
||||
{ "name": "Якубович Л.", "group": "7", "status": "lamb" }
|
||||
];
|
||||
|
||||
// Подключение к базе данных (или создание, если не существует)
|
||||
const db = new sqlite3.Database('../database.sqlite', (err) => {
|
||||
if (err) {
|
||||
console.error('Ошибка при подключении к БД:', err.message);
|
||||
} else {
|
||||
console.log('Подключение к SQLite успешно');
|
||||
}
|
||||
});
|
||||
|
||||
// Вставка данных
|
||||
const insertData = () => {
|
||||
const stmt = db.prepare("INSERT INTO sheep (name, group_id, appointment, hash) VALUES (?, ?, ?, ?)");
|
||||
data.forEach(user => {
|
||||
stmt.run(user.name, user.group, user.status, crypto.randomUUID());
|
||||
});
|
||||
stmt.finalize();
|
||||
console.log('Данные успешно записаны');
|
||||
};
|
||||
|
||||
// Запуск вставки данных после создания таблицы
|
||||
insertData();
|
||||
|
||||
// Закрытие соединения с БД
|
||||
db.close((err) => {
|
||||
if (err) {
|
||||
console.error('Ошибка при закрытии БД:', err.message);
|
||||
} else {
|
||||
console.log('Соединение с БД закрыто');
|
||||
}
|
||||
});
|
||||
161
scripts/migrator.js
Normal file
161
scripts/migrator.js
Normal file
@@ -0,0 +1,161 @@
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
const db = new sqlite3.Database('database.sqlite');
|
||||
const db_old = new sqlite3.Database('old_db.sqlite');
|
||||
|
||||
|
||||
// Створення підїздів
|
||||
// const sql_1 = `SELECT * FROM areas`;
|
||||
// db_old.all(sql_1, [], (err, areas) => {
|
||||
// if (err) {
|
||||
// throw err;
|
||||
// }
|
||||
|
||||
// for (let i = 0; i < areas.length; i++) {
|
||||
// const area = areas[i];
|
||||
|
||||
// if(area.type == "house"){
|
||||
// // console.log(JSON.parse(area.entrance));
|
||||
|
||||
// db.get('SELECT * FROM house WHERE title = ? AND number = ?', [area.address_title, area.address_number], (err, house) => {
|
||||
// if (err) {
|
||||
// console.error(err.message);
|
||||
// } else {
|
||||
// let entrances = JSON.parse(area.entrance);
|
||||
// let entrance_numbers = JSON.parse(area.entrance_number);
|
||||
|
||||
// for (let q = 0; q < entrances.length; q++) {
|
||||
// const entrance = entrances[q];
|
||||
// const number = entrance_numbers[q];
|
||||
// console.log(entrance, number);
|
||||
|
||||
// db.run(`INSERT INTO entrance(house_id, entrance_number, title, points, points_number) VALUES(?, ?, ?, ?, ?)`,
|
||||
// [
|
||||
// house.id,
|
||||
// q,
|
||||
// `Під'їзд ${q+1}`,
|
||||
// JSON.stringify(entrance),
|
||||
// JSON.stringify(number)
|
||||
// ],
|
||||
// function (err) {
|
||||
// if (err) {
|
||||
// console.error(err.message);
|
||||
// } else {
|
||||
// console.log("New user entrance added with id " + this.lastID);
|
||||
// }
|
||||
// }
|
||||
// );
|
||||
// }
|
||||
|
||||
// // console.log(JSON.parse(area.entrance));
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
|
||||
|
||||
|
||||
// Міграція історії з старої БД в нову
|
||||
// const sql_1 = `SELECT * FROM history ORDER BY date_start`;
|
||||
// db_old.all(sql_1, [], (err, historys) => {
|
||||
// if (err) {
|
||||
// throw err;
|
||||
// }
|
||||
|
||||
// for (let i = 0; i < historys.length; i++) {
|
||||
// const history = historys[i];
|
||||
|
||||
// db_old.get('SELECT * FROM territory WHERE number = ?', [history.territory_number], (err, territory) => {
|
||||
// if (err) {
|
||||
// console.error(err.message);
|
||||
// } else {
|
||||
// // console.log(territory);
|
||||
// let areas_id = JSON.parse(territory.areas_id)
|
||||
|
||||
// for (let index = 0; index < areas_id.length; index++) {
|
||||
// const element = areas_id[index];
|
||||
|
||||
// db_old.get('SELECT * FROM areas WHERE id = ?', [element[0]], (err, area) => {
|
||||
// if (err) {
|
||||
// console.error(err.message);
|
||||
// } else {
|
||||
// if (area.type == "house") {
|
||||
// console.log(area.address_title, area.address_number);
|
||||
|
||||
// db.get('SELECT * FROM house WHERE title = ? AND number = ?', [area.address_title, area.address_number], (err, house) => {
|
||||
// if (err) {
|
||||
// console.error(err.message);
|
||||
// } else {
|
||||
// console.log(area.address_title, area.address_number);
|
||||
// console.log(house.id, element[1]);
|
||||
|
||||
// db.get('SELECT * FROM entrance WHERE house_id = ? AND entrance_number = ?', [house.id, element[1]], (err, entrance) => {
|
||||
// if (err) {
|
||||
// console.error(err.message);
|
||||
// } else {
|
||||
// console.log(house.id, element[1]);
|
||||
|
||||
// console.log(entrance.id, house.title, house.number, entrance.title);
|
||||
|
||||
// db.run(`INSERT INTO entrance_history(entrance_id, name, date_start, date_end, group_number, working) VALUES(?, ?, ?, ?, ?, ?)`,
|
||||
// [
|
||||
// entrance.id,
|
||||
// history.name,
|
||||
// history.date_start,
|
||||
// history.date_end,
|
||||
// history.group_number,
|
||||
// history.working,
|
||||
// ],
|
||||
// function (err) {
|
||||
// if (err) {
|
||||
// console.error(err.message);
|
||||
// } else {
|
||||
// console.log("New user history added with id " + this.lastID);
|
||||
// }
|
||||
// }
|
||||
// );
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
|
||||
// } else {
|
||||
// db.get('SELECT * FROM homestead WHERE title = ? AND number = ?', [area.address_title, area.address_number], (err, homestead) => {
|
||||
// if (err) {
|
||||
// console.error(err.message);
|
||||
// } else {
|
||||
// // console.log(house.id, house.title, house.number);
|
||||
|
||||
// db.run(`INSERT INTO homestead_history(homestead_id, name, date_start, date_end, group_number, working) VALUES(?, ?, ?, ?, ?, ?)`,
|
||||
// [
|
||||
// homestead.id,
|
||||
// history.name,
|
||||
// history.date_start,
|
||||
// history.date_end,
|
||||
// history.group_number,
|
||||
// history.working,
|
||||
// ],
|
||||
// function (err) {
|
||||
// if (err) {
|
||||
// console.error(err.message);
|
||||
// } else {
|
||||
// console.log("New user history added with id " + this.lastID);
|
||||
// }
|
||||
// }
|
||||
// );
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
|
||||
|
||||
// }
|
||||
|
||||
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// });
|
||||
|
||||
14
scripts/package.json
Normal file
14
scripts/package.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "import",
|
||||
"version": "1.0.0",
|
||||
"main": "import.js",
|
||||
"scripts": {
|
||||
"start": "node import.js"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"description": "",
|
||||
"dependencies": {
|
||||
"sqlite3": "^5.1.7"
|
||||
}
|
||||
}
|
||||
181
scripts/updateDB.py
Normal file
181
scripts/updateDB.py
Normal file
@@ -0,0 +1,181 @@
|
||||
import sqlite3
|
||||
|
||||
def table_exists(cursor, table_name):
|
||||
cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name=?;", (table_name,))
|
||||
return cursor.fetchone() is not None
|
||||
|
||||
def create_tables():
|
||||
conn = sqlite3.connect("database.sqlite")
|
||||
cursor = conn.cursor()
|
||||
|
||||
tables = {
|
||||
"sheep": """
|
||||
CREATE TABLE IF NOT EXISTS sheep (
|
||||
id INTEGER PRIMARY KEY,
|
||||
group_id INTEGER,
|
||||
name TEXT,
|
||||
icon TEXT,
|
||||
hash TEXT,
|
||||
appointment TEXT DEFAULT 'lamb',
|
||||
mode INTEGER DEFAULT 0,
|
||||
cu_access INTEGER DEFAULT 0,
|
||||
mt_access INTEGER DEFAULT 0,
|
||||
ct_access INTEGER DEFAULT 0,
|
||||
ms_access INTEGER DEFAULT 0,
|
||||
sm_access INTEGER DEFAULT 0,
|
||||
FOREIGN KEY (group_id) REFERENCES groups(id)
|
||||
);""",
|
||||
"groups": """
|
||||
CREATE TABLE IF NOT EXISTS groups (
|
||||
id INTEGER PRIMARY KEY,
|
||||
group_number INTEGER,
|
||||
share_hash TEXT
|
||||
);""",
|
||||
"subscription": """
|
||||
CREATE TABLE IF NOT EXISTS subscription (
|
||||
id INTEGER PRIMARY KEY,
|
||||
sheep_id INTEGER,
|
||||
token TEXT,
|
||||
FOREIGN KEY (sheep_id) REFERENCES sheep(id)
|
||||
);""",
|
||||
"house": """
|
||||
CREATE TABLE IF NOT EXISTS house (
|
||||
id INTEGER PRIMARY KEY,
|
||||
group_id INTEGER,
|
||||
title TEXT,
|
||||
number TEXT,
|
||||
points TEXT DEFAULT '[]',
|
||||
points_number TEXT DEFAULT '[]',
|
||||
geo TEXT DEFAULT '[]',
|
||||
osm_id TEXT DEFAULT '[]',
|
||||
settlement TEXT,
|
||||
description TEXT,
|
||||
created_at TIMESTAMP,
|
||||
updated_at TIMESTAMP,
|
||||
FOREIGN KEY (group_id) REFERENCES groups(id)
|
||||
);""",
|
||||
"entrance": """
|
||||
CREATE TABLE IF NOT EXISTS entrance (
|
||||
id INTEGER PRIMARY KEY,
|
||||
house_id INTEGER,
|
||||
entrance_number INTEGER,
|
||||
title TEXT,
|
||||
points TEXT DEFAULT '[]',
|
||||
points_number TEXT DEFAULT '[]',
|
||||
floors_quantity TEXT,
|
||||
apartments_quantity TEXT,
|
||||
description TEXT,
|
||||
created_at TIMESTAMP,
|
||||
updated_at TIMESTAMP,
|
||||
FOREIGN KEY (house_id) REFERENCES house(id)
|
||||
);""",
|
||||
"entrance_history": """
|
||||
CREATE TABLE IF NOT EXISTS entrance_history (
|
||||
id INTEGER PRIMARY KEY,
|
||||
entrance_id INTEGER,
|
||||
name TEXT,
|
||||
date_start TIMESTAMP,
|
||||
date_end TIMESTAMP,
|
||||
group_number INTEGER,
|
||||
sheep_id TEXT,
|
||||
working INTEGER DEFAULT 0,
|
||||
FOREIGN KEY (entrance_id) REFERENCES entrance(id),
|
||||
FOREIGN KEY (sheep_id) REFERENCES sheep(id)
|
||||
);""",
|
||||
"apartments": """
|
||||
CREATE TABLE IF NOT EXISTS apartments (
|
||||
id INTEGER PRIMARY KEY,
|
||||
entrance_id INTEGER,
|
||||
apartment_number INTEGER,
|
||||
title TEXT,
|
||||
floors_number INTEGER,
|
||||
status INTEGER,
|
||||
description TEXT,
|
||||
sheep_id TEXT,
|
||||
updated_at TIMESTAMP,
|
||||
FOREIGN KEY (entrance_id) REFERENCES entrance(id),
|
||||
FOREIGN KEY (sheep_id) REFERENCES sheep(id)
|
||||
);""",
|
||||
"apartments_history": """
|
||||
CREATE TABLE IF NOT EXISTS apartments_history (
|
||||
id INTEGER PRIMARY KEY,
|
||||
apartments_id INTEGER,
|
||||
status INTEGER,
|
||||
description TEXT,
|
||||
sheep_id TEXT,
|
||||
created_at TIMESTAMP,
|
||||
FOREIGN KEY (apartments_id) REFERENCES apartments(id)
|
||||
);""",
|
||||
"homestead": """
|
||||
CREATE TABLE IF NOT EXISTS homestead (
|
||||
id INTEGER PRIMARY KEY,
|
||||
group_id INTEGER,
|
||||
title TEXT,
|
||||
number TEXT,
|
||||
points TEXT DEFAULT '[]',
|
||||
point_icons TEXT DEFAULT '[]',
|
||||
geo TEXT DEFAULT '[]',
|
||||
osm_id TEXT DEFAULT '[]',
|
||||
settlement TEXT,
|
||||
description TEXT,
|
||||
created_at TIMESTAMP,
|
||||
updated_at TIMESTAMP,
|
||||
FOREIGN KEY (group_id) REFERENCES groups(id)
|
||||
);""",
|
||||
"homestead_history": """
|
||||
CREATE TABLE IF NOT EXISTS homestead_history (
|
||||
id INTEGER PRIMARY KEY,
|
||||
homestead_id INTEGER,
|
||||
name TEXT,
|
||||
date_start TIMESTAMP,
|
||||
date_end TIMESTAMP,
|
||||
group_number INTEGER,
|
||||
sheep_id TEXT,
|
||||
working INTEGER DEFAULT 0,
|
||||
FOREIGN KEY (homestead_id) REFERENCES homestead(id),
|
||||
FOREIGN KEY (sheep_id) REFERENCES sheep(id)
|
||||
);""",
|
||||
"meetings_schedule": """
|
||||
CREATE TABLE IF NOT EXISTS meetings_schedule (
|
||||
id INTEGER PRIMARY KEY,
|
||||
date TIMESTAMP,
|
||||
type INTEGER,
|
||||
name TEXT,
|
||||
sheep_id TEXT,
|
||||
title TEXT,
|
||||
number TEXT,
|
||||
FOREIGN KEY (sheep_id) REFERENCES sheep(id)
|
||||
);""",
|
||||
"stand_list": """
|
||||
CREATE TABLE IF NOT EXISTS stand_list (
|
||||
id INTEGER PRIMARY KEY,
|
||||
title TEXT,
|
||||
hour_start INTEGER DEFAULT 10,
|
||||
hour_end INTEGER DEFAULT 16,
|
||||
quantity_sheep INTEGER DEFAULT 2,
|
||||
week_days TEXT DEFAULT '[0, 1, 2, 3, 4, 5, 6]'
|
||||
);""",
|
||||
"stand_schedule": """
|
||||
CREATE TABLE IF NOT EXISTS stand_schedule (
|
||||
id INTEGER PRIMARY KEY,
|
||||
stand INTEGER,
|
||||
date TIMESTAMP,
|
||||
hour INTEGER,
|
||||
sheep_id TEXT,
|
||||
number_sheep TEXT,
|
||||
updated_at TIMESTAMP,
|
||||
FOREIGN KEY (sheep_id) REFERENCES sheep(id),
|
||||
FOREIGN KEY (stand) REFERENCES stand_list(id)
|
||||
);"""
|
||||
}
|
||||
|
||||
for name, sql in tables.items():
|
||||
if not table_exists(cursor, name):
|
||||
cursor.execute(sql)
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
create_tables()
|
||||
print("Database setup complete.")
|
||||
Reference in New Issue
Block a user