Как я могу сделать SQL Server в памяти для тестирования интеграции? - PullRequest
0 голосов
/ 06 февраля 2019

Я хочу иметь возможность создавать базу данных и таблицы таким же образом, как это делает клиент Amazon DynamoDb, но с Sql Server.Это возможно?

Я использую .net Core, и это для интеграционных тестов.Понял, я могу добавить код в приспособлении.

У кого-нибудь есть идеи?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Вы можете запустить SQL Server (по крайней мере, файлы журналов) на диске RAM.и / или использовать отсроченную долговечность ALTER DATABASE x SET DELAYED_DURABILITY = forced.Вы также можете использовать оптимизированные для памяти таблицы, но я думаю, что вы не получите полной совместимости.

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

Для такого рода энергозависимых баз данных (также относится к контейнерам) вам необходимо добавить некоторый код в тестовый конвейер или продукт, чтобы создать и заполнить БД.(Если вы используете контейнеры, вы можете подумать об упаковке предварительно заполненного снимка БД)

0 голосов
/ 06 февраля 2019

EF Core Миграции :

"Функция миграции в EF Core позволяет постепенно обновлять схему базы данных, чтобы поддерживать ее синхронизацию с моделью данных приложения при сохранениисуществующие данные в базе данных. "

API создания и удаления :

" Методы EnsureCreated и EnsureDeleted предоставляют упрощенную альтернативу миграции для управлениясхема базы данных. Эти методы полезны в сценариях, когда данные временные и могут быть отброшены при изменении схемы. Например, во время прототипирования, в тестах или для локальных кэшей. "

для созданиятаблиц во время выполнения.

А затем используйте один из методов Data Seeding :

Заполнение данных - это процесс заполнения базы данных начальным набором данных.,Это можно сделать несколькими способами в EF Core:

  • Исходные данные модели
  • Ручная настройка миграции
  • Настраиваемая логика инициализации

, чтобы заполнить их известными данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...