update: add new logic for push token
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
-- Update push notification token field to support multiple devices
|
||||
-- Step 1: Add new push_tokens JSON array column
|
||||
ALTER TABLE users ADD COLUMN push_tokens JSONB DEFAULT NULL;
|
||||
|
||||
-- Step 2: Migrate existing single push_token data to the new array format
|
||||
UPDATE users
|
||||
SET
|
||||
push_tokens = CASE
|
||||
WHEN push_token IS NOT NULL
|
||||
AND push_token != '' THEN jsonb_build_array (push_token)
|
||||
ELSE NULL
|
||||
END
|
||||
WHERE
|
||||
push_token IS NOT NULL;
|
||||
|
||||
-- Step 3: Drop the old single push_token column
|
||||
ALTER TABLE users DROP COLUMN IF EXISTS push_token;
|
||||
|
||||
-- Step 4: Add index for better performance on push_tokens
|
||||
CREATE INDEX IF NOT EXISTS idx_users_push_tokens ON users USING GIN (push_tokens)
|
||||
WHERE
|
||||
push_tokens IS NOT NULL
|
||||
AND push_tokens != 'null'::jsonb
|
||||
AND jsonb_array_length(push_tokens) > 0
|
||||
AND deleted_at IS NULL;
|
||||
|
||||
-- Step 5: Add comment for documentation
|
||||
COMMENT ON COLUMN users.push_tokens IS 'JSON array of Najva push notification tokens from different user devices';
|
||||
Reference in New Issue
Block a user