28 lines
938 B
SQL
28 lines
938 B
SQL
CREATE TABLE IF NOT EXISTS user_identities (
|
|
id SERIAL PRIMARY KEY,
|
|
user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
|
|
provider VARCHAR(50) NOT NULL,
|
|
provider_id VARCHAR(255) NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE(provider, provider_id)
|
|
);
|
|
|
|
-- Создаем индексы после создания таблицы
|
|
DO $$
|
|
BEGIN
|
|
-- Индекс для user_id
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_indexes
|
|
WHERE tablename = 'user_identities' AND indexname = 'idx_user_identities_user_id'
|
|
) THEN
|
|
CREATE INDEX idx_user_identities_user_id ON user_identities(user_id);
|
|
END IF;
|
|
|
|
-- Индекс для provider и provider_id
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_indexes
|
|
WHERE tablename = 'user_identities' AND indexname = 'idx_user_identities_type_value'
|
|
) THEN
|
|
CREATE INDEX idx_user_identities_type_value ON user_identities(provider, provider_id);
|
|
END IF;
|
|
END $$; |