Я создавал систему для своей команды, которая позволяет нам автоматически генерировать большие объемы тестовых данных, чтобы мы могли возвращать нашу базу данных в согласованное состояние, когда нам это нужно. Это должно быть полностью автоматизировано, но в настоящее время у меня есть одна проблема, которая не позволяет этому произойти.
Наша база данных создается с помощью Entity Framework, и мы также используем миграции. Проблема в том, что, поскольку порядок столбцов может измениться из-за миграции, это означает, что тестовые данные, которые были экспортированы до миграции, могут больше не импортироваться правильно при использовании bcp.
Чтобы проиллюстрировать это более четко, вот шаги для воспроизведения поведения:
Создайте простую таблицу:
Создайте файл формата:
C:\bcp [BCPTest].[dbo].[Person] формат nul -f person.xml -x -N -T -S .\SQLExpress
Создайте бинарный выходной файл:
C:\bcp [BCPTest].[dbo].[Person] из person.dat -N -T -S .\SQLExpress
Измените порядок столбцов и сохраните:
Попробуйте импортировать:
C:\bcp [BCPTest].[dbo].[Person] в person.dat -f person.xml -N -T -S .\SQLExpress
Это приведет к множеству различных ошибок. В настоящее время это можно исправить, переупорядочив столбцы в таблицах, которые не удалось выполнить, вручную, сохранив и повторно запустив импорт, но, как я уже говорил ранее, это необходимо полностью автоматизировать.
Есть ли у кого-нибудь предложения относительно того, как я могу этого добиться?