Индекс PostgreSQL SQLAlchemy NULLS NOT DISTINCTPython

Программы на Python
Ответить
Anonymous
 Индекс PostgreSQL SQLAlchemy NULLS NOT DISTINCT

Сообщение Anonymous »

У меня есть таблица (TA), в которой я хочу иметь составной уникальный индекс для двух столбцов (col1 и col2).
col2 может иметь значение NULL.
Я знаю, что Postgres рассматривает значения NULL как отдельные.
Поэтому в SQL я бы сделал:

Код: Выделить всё

CREATE UNIQUE INDEX index_name ON TA (col1, col2) NULLS NOT DISTINCT
Как я могу добиться того же в модели SQLAlchemy?
Что-то вроде:

Код: Выделить всё

class TherapeuticArea(Base):
__tablename__ = "TA"
__table_args__ = (
sa.Index(
"index_name",
"col1",
"col2",
unique=True,
# postgresql_ option here? Which one? Or..?
),
)
Примечание: до сих пор я добавлял такой оператор SQL, как custom op.execute(), в миграцию, сгенерированную Alembic, и он работает нормально.
Но затем Alembic продолжает удалять индекс при последующих миграциях.
Поэтому я хотел бы иметь его как простое объявление в модели

Подробнее здесь: https://stackoverflow.com/questions/798 ... t-distinct
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»