# Make script executable
chmod +x run-ab-testing-migration.sh
# Run migration
./run-ab-testing-migration.sh# Connect to PostgreSQL
psql -h localhost -p 5432 -U postgres -d myapp
# Then run the SQL from sql/create-ab-testing-tables.sqlnpm run migration:run- experiments - Experiment definitions
- experiment_conversions - Conversion events
- experiment_assignments - User-variant assignments
- feature_flags - Feature flag definitions
- Indexes for performance on all foreign keys and status fields
new_puzzle_ui(10% rollout)premium_rewards(100% for premium users)tutorial_v2(disabled)social_features(50% rollout)mobile_optimizations(100% rollout)
After migration, verify tables were created:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name IN ('experiments', 'experiment_conversions', 'experiment_assignments', 'feature_flags');# Start PostgreSQL (Ubuntu/Debian)
sudo service postgresql start
# Or using Docker
docker run -d --name postgres -e POSTGRES_PASSWORD=password -p 5432:5432 postgresCheck your .env file has correct credentials:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=myapp
DB_USER=postgres
DB_PASSWORD=password
The migration uses CREATE TABLE IF NOT EXISTS so it's safe to run multiple times.