All infos - Entity Framework + PostgreSql миграция
15
янв

Entity Framework + PostgreSql миграция

Для подключения здесь - https://metanit.com/sharp/entityframeworkcore/7.1.php

Чтобы использовать базу данных postgresql в проекте я применял следующие шаги:

  1. Установил Docker for Windows.
  2. В контейнер Linux добавил субд PostgreSql.
  3. Установил следующие пакеты Npgsql.EntityFrameworkCore.PostgreSQL, Microsoft.EntityFrameworkCore.Tools.
  4. Изменил строку подключения в файле appsetings.json, например: "ConnectionStrings": {    "Default": "Host=localhost; Database=user; Username=postgres;Password=pass"

Далее применил миграцию, ВАЖНО проектом по умолчанию в Package Manager Console должен быть .EntityFrameworkCore

Команда в Package Console Manager "Add-Migration Name" где "Name" название текущей миграции(это может быть одна сущность).

"Update-Database" добавление в базу новых миграций. Для удаления migration, после команды "Add-Migration Name" использовать "Remove-Migration", тогда данные о удалённой миграции синхронизируются  с файлом MyAppModelSnapshot.cs. Если после добавления миграции была применена команда "Update-Database", то при удалении миграции может появится ошибка:

"Remove-Migration : A positional parameter cannot be found that accepts argument 'Migration Name'.Remove-Migration : A positional parameter cannot be found that accepts argument '......"

Можно удалить из базы данных последнюю миграцию, из таблицы _EFMigrationsHistory.

Команды в консоли для операций с миграциями: Команды для миграций

Если используется DataGrip, то вместо базы может отображаться пустая папка. Нужно правой кнопкой мыши на используемой базе Database Tools -> Manage Shown Scheme и установить флажок на public.

Share this post