Add full SEO optimization for Spanglish social and language events
- Add comprehensive metadata to root layout with Open Graph, Twitter cards - Create dynamic sitemap.ts for all pages and events - Create robots.ts with proper allow/disallow rules - Add JSON-LD Event structured data to event detail pages - Add page-specific metadata to events, community, contact, FAQ pages - Add FAQ structured data schema - Update footer with local SEO text for Asunción, Paraguay - Add web manifest for mobile SEO - Create 404 page with proper noindex - Optimize image alt text and add lazy loading - Add NEXT_PUBLIC_SITE_URL env variable - Add about/ folder to gitignore
This commit is contained in:
39
backend/scripts/migrate-users-nullable-password.sql
Normal file
39
backend/scripts/migrate-users-nullable-password.sql
Normal file
@@ -0,0 +1,39 @@
|
||||
-- Migration: Make password column nullable for Google OAuth users
|
||||
-- Run this on your production SQLite database:
|
||||
-- sqlite3 /path/to/spanglish.db < migrate-users-nullable-password.sql
|
||||
|
||||
-- SQLite doesn't support ALTER COLUMN, so we need to recreate the table
|
||||
|
||||
-- Step 1: Create new table with correct schema (password is nullable)
|
||||
CREATE TABLE users_new (
|
||||
id TEXT PRIMARY KEY,
|
||||
email TEXT NOT NULL UNIQUE,
|
||||
password TEXT, -- Now nullable for Google OAuth users
|
||||
name TEXT NOT NULL,
|
||||
phone TEXT,
|
||||
role TEXT NOT NULL DEFAULT 'user',
|
||||
language_preference TEXT,
|
||||
is_claimed INTEGER NOT NULL DEFAULT 1,
|
||||
google_id TEXT,
|
||||
ruc_number TEXT,
|
||||
account_status TEXT NOT NULL DEFAULT 'active',
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- Step 2: Copy all existing data
|
||||
INSERT INTO users_new (id, email, password, name, phone, role, language_preference, is_claimed, google_id, ruc_number, account_status, created_at, updated_at)
|
||||
SELECT id, email, password, name, phone, role, language_preference, is_claimed, google_id, ruc_number, account_status, created_at, updated_at
|
||||
FROM users;
|
||||
|
||||
-- Step 3: Drop old table
|
||||
DROP TABLE users;
|
||||
|
||||
-- Step 4: Rename new table
|
||||
ALTER TABLE users_new RENAME TO users;
|
||||
|
||||
-- Step 5: Recreate indexes
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS users_email_idx ON users(email);
|
||||
CREATE INDEX IF NOT EXISTS users_google_id_idx ON users(google_id);
|
||||
|
||||
-- Done! Google OAuth users can now be created without passwords.
|
||||
Reference in New Issue
Block a user