/
lostSun
/
project-client-server-apps
Обзор
Документация
Войти
/
lostSun
/
project-client-server-apps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
server/src/db/init.js
58 строк
2 KB
1lostsun
update project
25 май 2025, 13:12
25 май 2025, 13:12
78a0079
Код
Авторство
О чём код?
const sqlite3 = require('sqlite3').verbose(); const path = require('path'); const fs = require('fs'); const db = new sqlite3.Database(path.join(__dirname, 'database.sqlite')); const schema = fs.readFileSync(path.join(__dirname, 'schema.sql'), 'utf8'); db.serialize(() => { db.exec(schema, (err) => { if (err) { console.error('Error creating database schema:', err); process.exit(1); } console.log('Database schema created successfully!'); }); // Создаем таблицу пользователей db.run(` CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL, email TEXT UNIQUE NOT NULL, password TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ) `); // Создаем таблицу книг db.run(` CREATE TABLE IF NOT EXISTS books ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, author TEXT NOT NULL, description TEXT, year INTEGER, isbn TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ) `); // Создаем таблицу сохраненных книг пользователей db.run(` CREATE TABLE IF NOT EXISTS user_books ( id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER NOT NULL, book_id INTEGER NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users (id), FOREIGN KEY (book_id) REFERENCES books (id), UNIQUE(user_id, book_id) ) `); }); db.close();