Ответ 1
API, похоже, изменился (или, по крайней мере, он не работает для меня).
Выполнение следующего в консоли диспетчера пакетов работает как ожидалось:
Update-Database -Script -SourceMigration:0
Как использовать Entity Framework 5 First First Migrations для создания полной базы данных script из исходного (пустого) состояния до последней миграции?
Сообщение в блоге Блог MSDN предлагает сделать это, но, похоже, создает пустой script:
Update-Database -Script -SourceMigration: $InitialDatabase
API, похоже, изменился (или, по крайней мере, он не работает для меня).
Выполнение следующего в консоли диспетчера пакетов работает как ожидалось:
Update-Database -Script -SourceMigration:0
Чтобы добавить к ответу Мэтта Уилсона, у меня было несколько классов сущностей с кодом, но нет базы данных, так как я не делал резервную копию. Поэтому я сделал следующее в своем проекте Entity Framework:
Откройте консоль диспетчера пакетов в Visual Studio и введите следующее:
Enable-Migrations
Add-Migration
Дайте вашей миграции имя, например "Initial", а затем создайте миграцию. Наконец введите следующее:
Update-Database
Update-Database -Script -SourceMigration:0
Последняя команда создаст ваши таблицы базы данных из ваших классов сущностей (при условии, что ваши классы сущностей правильно сформированы).
Для тех, кто использует ядро структуры сущностей, заканчивающееся здесь. Вот как ты это делаешь.
# Powershell / Package manager console
Script-Migration
# Cli
dotnet ef migrations script
Вы можете использовать параметры -From
и -To
, чтобы сгенерировать скрипт обновления для обновления базы данных до определенной версии.
Script-Migration -From 20190101011200_Initial-Migration -To 20190101021200_Migration-2
https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/#generate-sql-scripts
У этой команды есть несколько параметров.
Миграция из должна быть последней миграцией, примененной к базе данных перед запуском сценария. Если миграции не были применены, укажите
0
(это значение по умолчанию).Миграция с на - это последняя миграция, которая будет применена к базе данных после запуска сценария. По умолчанию это последняя миграция в вашем проекте.
При желании можно создать идемпотентный скрипт. Этот сценарий применяет миграции только в том случае, если они еще не применены к базе данных. Это полезно, если вы точно не знаете, какая была последняя миграция, примененная к базе данных, или если вы развертываете несколько баз данных, каждая из которых может иметь свою миграцию.