Създавам система за моя екип, която ни позволява автоматично да генерираме големи количества тестови данни, така че да можем да върнем нашата база данни в последователно състояние, когато имаме нужда от нея. Това трябва да бъде напълно автоматизирано, но в момента имам един проблем, който пречи това да се случи.
Нашата база данни е създадена с помощта на Entity Framework и ние също използваме миграции. Проблемът е, че тъй като редът на колоните може да се промени поради миграция, това означава, че тестовите данни, които са били експортирани преди миграция, може вече да не се импортират правилно при използване на bcp.
За да илюстрираме това по-ясно, ето стъпките за възпроизвеждане на поведението:
Създайте проста таблица:
Създайте файла с формат:
C:\bcp [BCPTest].[dbo].[Person] format nul -f person.xml -x -N -T -S .\SQLExpress
Създайте двоичен изходен файл:
C:\bcp [BCPTest].[dbo].[Person] out person.dat -N -T -S .\SQLExpress
Пренаредете колоните и запазете:
Опитайте да импортирате:
C:\bcp [BCPTest].[dbo].[Person] in person.dat -f person.xml -N -T -S .\SQLExpress
Това ще доведе до много различни грешки. Понастоящем това може да бъде коригирано чрез пренареждане на колоните в неуспешните таблици ръчно, запазване и повторно изпълнение на импортирането, но, както казах по-рано, това трябва да бъде напълно автоматизирано.
Някой има ли някакви предложения как мога да постигна това?