Entity Framework + PostgreSql миграция
Для подключения здесь - https://metanit.com/sharp/entityframeworkcore/7.1.php
Чтобы использовать базу данных postgresql в проекте я применял следующие шаги:
- Установил Docker for Windows.
- В контейнер Linux добавил субд PostgreSql.
- Установил следующие пакеты Npgsql.EntityFrameworkCore.PostgreSQL, Microsoft.EntityFrameworkCore.Tools.
- Изменил строку подключения в файле 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.