Jetbrains Datagrip 2017.1.3, принудительный экспорт столбцов при выгрузке данных в файл вставок sql

У меня есть база данных SQL-сервера с большим количеством таблиц и данных. Мне нужно воспроизвести его локально в контейнере докера. Я успешно экспортировал схему и воспроизвел ее. Когда я выгружаю данные в файл SQL, он не экспортирует автоматически сгенерированные поля (например, идентификаторы или uuids)

Вот схема пользовательской таблицы:

 create table user (
    id_user bigint identity constraint PK_user primary key,
    uuid uniqueidentifier default newsequentialid() not null,
    id_salarie bigint constraint FK_user_salarie references salarie,
    date_creation datetime,
    login nvarchar(100)
)

Когда он экспортирует и элемент из этой таблицы, я получаю такую ​​вставку:

INSERT INTO user(id_salarie, date_creation, login) VALUES (1, null, "example")

Как следствие, большинство моих вставок выдают ошибки внешнего ключа, потому что идентификаторы, сгенерированные моей новой базой данных, не совпадают с идентификаторами в старой базе данных. Я не могу изменить все вручную, так как данных слишком много.

Вместо этого я хотел бы иметь такую ​​вставку:

INSERT INTO user(id_user, uuid, id_salarie, date_creation, login) VALUES (1, 1, "manuallyentereduuid" null, "example")

Есть ли способ сделать это напрямую с помощью Datagrid? Или, может быть, конкретный способ SQL-сервера генерировать операторы вставки таким образом?

Не стесняйтесь спрашивать подробности в комментариях.


person matthieusb    schedule 04.05.2017    source источник
comment
Какая СУБД? MySQL?   -  person moscas    schedule 12.05.2017
comment
Это база данных Microsoft SQL Server 2008.   -  person matthieusb    schedule 12.05.2017


Ответы (2)


Вам понадобится опция «Пропустить сгенерированные столбцы» при настройке экстрактора INSERT.

введите описание изображения здесь

person moscas    schedule 05.06.2017
comment
Вот и все! Большое спасибо за снимок экрана, найти эту опцию было неочевидно. - person matthieusb; 05.06.2017

Похоже, что Datagrip не дает вам такой возможности, поэтому я использовал кое-что еще: DBeaver. Это бесплатно и основано на среде Eclipse.

Метод прост:

  • Выберите все таблицы, которые хотите экспортировать
  • Щелкните правой кнопкой мыши -> Экспорт данных таблицы

Оттуда вам просто нужно следовать инструкциям. Он выводит по одному файлу на таблицу, что хорошо, если у вас есть последующий объем. У меня возникли проблемы с выполнением всего сценария, и мне пришлось разделить его при использовании Datagrip.

Надеюсь, это поможет любому, кто столкнется с той же проблемой. Если вы найдете решение прямо в datagrip, я тоже хотел бы знать.

РЕДАКТИРОВАТЬ: См. ответ выше.

person matthieusb    schedule 05.05.2017