Очень коротко:Управление EF Code First Миграция между разработкой и производством
I осуществляет EF Миграцию на существующий проект, построенный в качестве кода Первой основаны на статью Ladislav Mrnka
При реализации EF Миграции на проект, который уже запущен в производство, как можно управлять сценариями миграции между обновлениями, применяемыми к Development, а затем скриптами, сгенерированными для Production?
Причина, по которой я озадачен, заключается в том, что для MigrationId, сгенерированного для каждого скрипта, был добавлен TimeStamp. В моих попытках миграции я заметил, что записи, записанные в таблицах __MigrationHistory на dev и prod, различны, что поднимает вопрос, если БД должна пройти немало обновлений миграции, тогда, если бы по какой-либо причине требовалось понижение рейтинга , было бы очень трудно сотрудничать связать точную MigrationId для создания сценариев с помощью update-database -script
очень прямо вперед процесс, в котором вы создаете $InitialMigration
, который создает __MigrationHistory
таблицу. Затем любые изменения в вашей модели сопровождаются любыми update-database
для получения базы данных Миграция. И этот процесс циклируется всякий раз, когда у вас есть логически сгруппированная партия изменений модели.
взгляда в __MigrationHistory
стола показал
+------------------------------------+-------------------------+------------------------------------------------------------------+----------------+
| MigrationId | CreatedOn | Model | ProductVersion |
+------------------------------------+-------------------------+------------------------------------------------------------------+----------------+
| 000000000000000_BootstrapMigration | 2012-03-01 17:40:39.567 | 0x1F8B08000000400ECBD07601C49...HASH_TRUNCATED...CA7F54A20F50000 | 4.3.1 |
| 201203011745335_AutomaticMigration | 2012-03-01 17:45:33.557 | 0x1F8B08000000400ECBD07601C49...HASH_TRUNCATED...F4AE3681EF50000 | 4.3.1 |
+------------------------------------+-------------------------+------------------------------------------------------------------+----------------+
Как именно вы достигли того, что временные метки в базе данных prod и dev различны? Используете ли вы инициализатор базы данных для обновления БД? –
Изначально после включения миграции в стабильную сборку я запустил 'update-database', чтобы создать таблицу миграции с записью 00_bootstrap. Теперь я сменил модель и запустил «Update-Database -Script» для создания сценария для производственной базы данных, а затем «Update-Database», чтобы перенаправить Dev DB. Теперь выполнение sql, сгенерированного предыдущим шагом в Prod DB, создает запись в таблице MigrationsHistory как 'TIMESTAMP01_AutomaticMigration', тогда как более поздняя команда в Dev DB вставила запись в Dev DB с другим TimeStamp, поскольку две команды были пробегите несколько моментов. – bPratik