Как запустить миграцию Entity Framework 7 в удаленной базе данных с помощью Powershell?

В проекте автономной сущности Framework 7 (обратите внимание, а не на проект MVC с контекстом сущности, где может использоваться команда DNX), как я могу выполнить миграцию в удаленной базе данных с помощью Powershell?

В настоящее время я использую Entity Framework 7.0.0-rc1-final с Visual Studio 2015 (14.0.23107.0).

Ответы

Ответ 1

В настоящий момент вы не можете использовать чистую PowerShell для этого, потому что такая утилита, как migrate.exe, еще не существует, и импортирование модулей EF PS невозможно, так как им нужен диспетчер PowerShell для диспетчера пакетов.

Вот некоторые идеи о том, как вы можете обновить удаленный db в EF7:

Одна вещь, которую вы можете сделать, это использовать команды консоли диспетчера пакетов из VS, как обычно, для обновления удаленного db. Вы можете создать второй контекст, который имеет строку подключения удаленного db, и использовать компиляцию базы данных обновлений, определяющую используемый контекст. Для этих команд требуется следующий пакет в EF7: https://www.nuget.org/packages/EntityFramework.Commands/. Я сделал это успешно в проекте класса lib.

Другим решением было бы использовать команды DNX, создав проект DNX вместо классического. Проекты DNX предназначены не только для веб-сайтов, это просто еще один проект. Вот ссылка, которая показывает, как создать консольный проект DNX: http://docs.asp.net/en/latest/dnx/console.html. Таким образом, с этим типом проекта вы можете использовать предоставленные команды DNX, о которых вы, похоже, знаете.

Надеюсь, это помогло. Возможно, мы сможем помочь, если вы более подробно расскажете о своей ситуации и конечной цели.

Ответ 2

Ответьте слишком долго, как комментарий, поэтому добавьте его здесь...

Вы просмотрели эту статью и ссылки в ответе?

Из этого ответа

Проблема с импортом модуля в консоль PowerShell заключается в том, что я считаю, что модуль ожидает выполнения в контексте, где он имеет доступ к объекту DTE Visual Studio. Эта среда представляет собой консоль диспетчера пакетов NuGet. Эта проблема была поднята раньше. Ознакомьтесь с этим сообщением и этим вопросом SO.

Это сообщение показывает, как писать код, который выполняет миграции.

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