-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdate-table.js
More file actions
59 lines (48 loc) · 1.88 KB
/
Copy pathupdate-table.js
File metadata and controls
59 lines (48 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Script to update users table with new columns
const { supabase } = require('./services/database');
async function updateTable() {
try {
console.log('Updating users table with new columns...');
// Try to add columns one by one using Supabase's alter table functionality
const updates = [
{ name: 'email', type: 'text', isUnique: true },
{ name: 'password_hash', type: 'text' },
{ name: 'is_active', type: 'boolean', default: true },
{ name: 'email_verified', type: 'boolean', default: false },
{ name: 'verification_token', type: 'text' },
{ name: 'reset_token', type: 'text' },
{ name: 'reset_token_expires', type: 'timestamp with time zone' }
];
for (const column of updates) {
try {
console.log(`Adding column: ${column.name}`);
// For Supabase, we need to use the proper syntax
let query = `ALTER TABLE users ADD COLUMN IF NOT EXISTS ${column.name} ${column.type}`;
if (column.default !== undefined) {
if (column.type === 'boolean') {
query += ` DEFAULT ${column.default}`;
} else {
query += ` DEFAULT '${column.default}'`;
}
}
if (column.isUnique) {
query += ' UNIQUE';
}
console.log(`Executing: ${query}`);
// Try to execute the query
const { error } = await supabase.rpc('execute_sql', { sql: query });
if (error) {
console.log(`Warning: ${error.message}`);
} else {
console.log('Success');
}
} catch (err) {
console.log(`Error adding ${column.name}: ${err.message}`);
}
}
console.log('Table update completed!');
} catch (error) {
console.error('Update failed:', error.message);
}
}
updateTable();