Closed KseniiaKarpova closed 8 months ago
_sqlalchemy.exc.DBAPIError: (sqlalchemy.dialects.postgresql.asyncpg.Error) <class 'asyncpg.exceptions.FeatureNotSupportedError'>: unique constraint on partitioned table must include all partitioning columns DETAIL: PRIMARY KEY constraint on table "user_history" lacks column "userid" which is part of the partition key. [SQL: CREATE TABLE user_history ( uuid uuid DEFAULT gen_random_uuid() NOT NULL, user_id uuid NOT NULL REFERENCES users(uuid), user_agent VARCHAR(255) NOT NULL, refresh_token TEXT NOT NULL, is_active boolean NOT NULL, created_at DATE NOT NULL, updated_at DATE, PRIMARY KEY (uuid) ) PARTITION BY HASH(user_id); ]
Оно и ругается, что ключ партицирования, должен быть включен в PRIMARY KEY constraint Вот как это сделано в моем примере
Задание Партицируйте таблицу с пользователями. Подумайте, по каким критериям вы бы разделили её. Важно посмотреть на таблицу не только в текущем времени, но и заглядывая в некое будущее, когда в ней будут миллионы записей. Пользователи могут быть из одной страны, но из разных регионов. А ещё пользователи могут использовать разные устройства для входа и иметь разные возрастные ограничения.