Рубрики
Uncategorized

Семя вашего SQLSERVER, PostgreSQL и базы данных MySQL с файлами CSV с использованием миграций Yuniql

Фон позвольте мне начать с того, что я пишу это как для создания осведомленности о инструменте I … Помечено DEVOPS, SQL, база данных, dotnet.

Задний план

Позвольте мне начать с того, что я пишу это как для создания осведомленности о инструменте, который я построил, а также поделиться своим опытом, который я надеюсь, помогает сообществу сделать программное обеспечение лучше, быстрее, безопаснее.:)

За последние 8 месяцев я строил Проект Юникл (Yuu-Nee-Kel) ; Схема с схем с открытым исходным кодом и инструмент миграции базы данных, сделанный с .NET Основной. С самого начала один из случаев первичного использования мы пытались обратиться, — это посевная наши базы данных как для развертывания для определения окружающей среды, так и для поддержки тестов интеграции. Каждая свежие базы данных несет начальный набор данных, таких как таблицы поиска и базовые данные. Запуск тестов интеграции и регрессионные тесты требуют снимков данных или образцов для поддержки тестируемых сценариев.

Хотя мы всегда можем сценарировать исходные данные, эффективный способ — просто перебрасывать файлы CSV в папку и иметь его импортированную в таблицы назначения во время развертывания, выполнения теста или запуска приложения. Использование файлов CSV также позволяет нашим тестовым инженерам и бизнес-МСП подготовит сами по себе данные и доставляют в команды развития, поэтому его можно было бы подать в регрессионные тесты.

Такова рождение объема импортирующей поддержки Yuniql для файлов CSV в качестве данных семян.

Осева базы данных с файлами CSV и Yuniql

В этой статье я использую образец базы данных из sqltutorial.org Отказ Позволяет приготовить базовую версию базы данных и семян регионы , стран , Расположение , отделы и Работа таблицы. Тогда мы создадим новую версию для сотрудники и Иждивенцы таблицы.

Шаг 1: Установите YUNIQL CLI 👉

Начнем с получения Yuniql CLI установлен. Мы можем установить YUNIQL CLI несколько способов через шоколад, глобальный инструмент Dotnet, или непосредственно от источника. Выберите, что работает для вас.

Вариант 1: Установить через .NET Основной глобальный инструмент. Требует .NET. Core 3.0 SDK установлен.

dotnet tool install -g yuniql.cli

Вариант 2: Установить через Chocolatey Package Manager. Требуется установлен Choco.

choco install yuniql

Вариант 3: Используйте PowerShell и добавьте до ДОРОЖКА

Invoke-WebRequest -Uri https://github.com/rdagumampan/yuniql/releases/download/latest/yuniql-cli-win-x64-latest.zip -OutFile  "c:\temp\yuniql-win-x64-latest.zip"
Expand-Archive "c:\temp\yuniql-win-x64-latest.zip" -DestinationPath "c:\temp\yuniql-cli"
$Env:Path += ";c:\temp\yuniql-cli"

Вариант 4: Скачать пакет Zaint, содержащую файл yuniql.exe и извлекать в нашу каталог Workspace.

https://github.com/rdagumampan/yuniql/releases/download/latest/yuniql-cli-win-x64-latest.zip

Шаг 2: Инициализировать репозиторий схемы, позвоните Yuniql init 🍨

yuniql init 

Когда yuniql init Выдается, структура базового каталога. Каждая каталог версий представляет собой атомную версию нашей базы данных, выполненную в моде все или ничего. Учебные каталоги также созданы для покрытия до и после миграционной деятельности. Типичное рабочее пространство проекта стартера выглядит так.

Шаг 3: Создать базовую структуру схемы 🍭

Наш следующий шаг — подготовить нашу базовую версию. Базовая версия, это V0.00 нашей схемы базы данных и исходные данные. Базовая линия помогает создать полную видимость нашей эволюции схемы базы данных. Здесь мы готовим набор Создать таблицу Сценарии в Настройки-таблицы .sql файл.

Шаг 4: Подготовьте и добавьте файлы CSV в базовом уровне 🍹

Давайте теперь подготовим файлы CSV. Каждый файл CSV представляет собой полностью квалифицированное имя таблицы назначения. Файл dbo.regions.csv будет навалом загружена в dbo.regions Таблица. Мы можем использовать другую схему или держать его простым в Regions.csv И это будет использовать DBO как схема по умолчанию.

Шаг 5: Давайте сделаем это, позвоните в Yuniql Run 🏃

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=P@ssw0rd!" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2017-latest
SETX YUNIQL_CONNECTION_STRING "Server=localhost,1400;Database=helloyuniql;User Id=SA;Password=P@ssw0rd!"

Давайте проверим сейчас, развернув нашу базу данных локально. Здесь мы можем использовать контейнер SQL Server для ускорения процесса. В принципе, нам просто нужен сервер базы данных, к которым мы можем подключиться.

yuniql run -a

Когда Yuniql Run Выдается первый раз, он проверяет целевую базу данных и создает необходимую таблицу для отслеживания приложенных версий. - рассказывает Yuniql Для создания новой базы данных также. Все файлы сценария в _инит Справочник и дочерние каталоги будут выполнены только на этот раз. Порядок выполнения выглядит следующим образом _в этом , _PRE , vx.xx , vxx.xx + N. , _черновик , _POST Отказ

Все файлы CSV загружаются, когда выполняется все файлы сценариев.

Давайте проверим, как данные выглядят сейчас на SQL Server. Обратите внимание, что мы создали dbo .__ Yuniqldbversions. Чтобы вести учет уже примененных версий. Это гарантирует, что файлы CSV не будут импортированы в следующий раз, когда мы позвоним yuniql Run.

Куда мы отправимся отсюда? 🚧

Это один из первых шагов, позволяющих постоянную доставку изменений в наши базы данных. Мы можем взять это дальше, совершив это рабочее пространство в Гит Репозиторий и установление трубопроводов CI/CD для запуска миграции в различные среды. Yuniql выпускается также как Free Azure DevOps Task и докер изображения.

Как насчет других платформ баз данных? ❄️.

Совместимые сценарии PostgreSQL и MySQL могут быть выполнены таким же образом с --platform параметр.

yuniql run -a --platform postgresql
yuniql run -a --platform mysql

Последний выпуск YUNIQL поддерживает импорт CSV для SQL Server, PostgreSQL и MySQL. Сейчас я созреваю реализацию для снежинки DW, Azure Synapse Analytics, а также тарачакб, которые одинаково захватывающие платформы данных. Участники приветствуются!:)

Расставание слов ㊗️.

Использование файлов CSV для объемных импортных базовых данных и тестовых образцов — это эффективный подход к базам данных посева. Файлы CSV также позволяет пользователям Non-SQL помогают разработчикам готовить наборы данных для поддержки процесса разработки программного обеспечения. Как yuniql также использует активное сыпучих импортных API для целевой платформы Такие SQLBULKCOPY Для SQLSERVER мы можем импортировать большие файлы CSV довольно быстро.

Спасибо, если вы достигли этого далеко !!! 🍻 Это мой первый пост и я думаю, мне повеселились с Emojis: D Источник для этой статьи может быть клонировал здесь

Слияние Пожалуйста, поддержите YUNIQL, нажав Звезда GitHub! Для молодого проекта, как это, звезда может помочь захватить больше пользователей и улучшить инструмент на ранней стадии. https://github.com/rdagumampan/yuniql

Спасибо-спасибо!

Оригинал: «https://dev.to/rdagumampan/seeding-sqlserver-postgresql-and-mysql-databases-with-csv-files-using-yuniql-migrations-3ki7»