The npm install command failed in my project. Analyze the following er
This commit is contained in:
+49
-7
@@ -3,17 +3,58 @@ import Database from 'better-sqlite3';
|
||||
|
||||
// Use a file-based database in development
|
||||
const db = new Database('local.db');
|
||||
db.pragma('journal_mode = WAL');
|
||||
|
||||
// --- SCHEMA CREATION ---
|
||||
// Auth.js tables
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
email TEXT UNIQUE NOT NULL,
|
||||
password TEXT NOT NULL,
|
||||
name TEXT NOT NULL
|
||||
id TEXT PRIMARY KEY,
|
||||
name TEXT,
|
||||
email TEXT UNIQUE,
|
||||
emailVerified INTEGER,
|
||||
image TEXT,
|
||||
password TEXT
|
||||
)
|
||||
`);
|
||||
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS accounts (
|
||||
userId TEXT NOT NULL,
|
||||
type TEXT NOT NULL,
|
||||
provider TEXT NOT NULL,
|
||||
providerAccountId TEXT NOT NULL,
|
||||
refresh_token TEXT,
|
||||
access_token TEXT,
|
||||
expires_at INTEGER,
|
||||
token_type TEXT,
|
||||
scope TEXT,
|
||||
id_token TEXT,
|
||||
session_state TEXT,
|
||||
PRIMARY KEY (provider, providerAccountId),
|
||||
FOREIGN KEY (userId) REFERENCES users (id) ON DELETE CASCADE
|
||||
)
|
||||
`);
|
||||
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS sessions (
|
||||
sessionToken TEXT NOT NULL PRIMARY KEY,
|
||||
userId TEXT NOT NULL,
|
||||
expires INTEGER NOT NULL,
|
||||
FOREIGN KEY (userId) REFERENCES users (id) ON DELETE CASCADE
|
||||
)
|
||||
`);
|
||||
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS verification_tokens (
|
||||
identifier TEXT NOT NULL,
|
||||
token TEXT NOT NULL,
|
||||
expires INTEGER NOT NULL,
|
||||
PRIMARY KEY (identifier, token)
|
||||
)
|
||||
`);
|
||||
|
||||
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS settings (
|
||||
key TEXT PRIMARY KEY,
|
||||
@@ -54,13 +95,14 @@ db.exec(`
|
||||
console.log('Running database checks and seeding if necessary...');
|
||||
|
||||
// Seed default user
|
||||
const userStmt = db.prepare('SELECT id FROM users WHERE id = ?');
|
||||
const defaultUser = userStmt.get(1);
|
||||
const userStmt = db.prepare('SELECT id FROM users WHERE email = ?');
|
||||
const defaultUser = userStmt.get('admin@example.com');
|
||||
if (!defaultUser) {
|
||||
const insertUser = db.prepare(
|
||||
"INSERT INTO users (id, email, password, name) VALUES (?, ?, ?, ?)"
|
||||
);
|
||||
insertUser.run(1, 'admin@example.com', 'password', 'Admin User');
|
||||
// Note: In a real app, hash the password!
|
||||
insertUser.run('cl-admin-user-id', 'admin@example.com', 'password', 'Admin User');
|
||||
console.log('Default user created.');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user