Как изменить миграцию и ничего не уничтожить?

#postgresql

#postgresql

Вопрос:

У меня есть таблица пользователей, и я должен удалить ограничения NOT NULL из полей firstname, username и lastname, правильно ли я понимаю, что напрямую ничего нельзя изменить, нужно ли мне добавить новый sql-файл и с помощью команды? Как я могу удалить NOT NULL и ничего не нарушать? все ломается

 CREATE TABLE "user" (


 id                  SERIAL UNIQUE PRIMARY KEY,
username            VARCHAR(255) NOT NULL,
password            VARCHAR(255) NOT NULL,
email               VARCHAR(255) NOT NULL,
first_name          VARCHAR(255) NOT NULL,
last_name           VARCHAR(255) NOT NULL,
last_password_reset TIMESTAMP    NOT NULL DEFAULT NOW(),
roles               JSONB        NOT NULL,
active              BOOLEAN      NOT NULL DEFAULT TRUE,
date_created        TIMESTAMP    NOT NULL DEFAULT NOW(),
date_updated        TIMESTAMP    NOT NULL DEFAULT NOW()
);
  

Комментарии:

1. Почему вы не можете просто удалить not null из своего скрипта? Или вы хотите изменить таблицу, которая уже была создана? Затем используйте alter table

2. Таблица уже создана, но как будет выглядеть ваш пример?

3. Я нашел пример, где все ограничения таблицы отключены, но мне нужно отключить только некоторые из них.

4. Смотрите примеры в руководстве (в частности, тот, который озаглавлен «Удаление ненулевого ограничения из столбца»)

Ответ №1:

 ALTER TABLE user ALTER COLUMN username DROP NOT NULL;